Το ξέρω οτι ο Παναγιώτης θα με...καθαρίσει με αυτό που θα σου πω, μια και απο performance δεν είναι ο,τι το καλύτερο, αλλά θα μπορούσες να χρησιμοποιήσεις μια table-valued function που να σου επιστρέφει το πρώτο resultset.
Το πως το κάνεις φαίνεται παρακάτω (αντιγράφω από το books online):
CREATE FUNCTION LargeOrderShippers ( @FreightParm money )
RETURNS @OrderShipperTab TABLE
(
ShipperID int,
ShipperName nvarchar(80),
OrderID int,
ShippedDate datetime,
Freight money
)
AS
BEGIN
INSERT @OrderShipperTab
SELECT S.ShipperID, S.CompanyName,
O.OrderID, O.ShippedDate, O.Freight
FROM Shippers AS S INNER JOIN Orders AS O
ON S.ShipperID = O.ShipVia
WHERE O.Freight > @FreightParm
RETURN
END
Μετά μπορείς να κάνεις π.χ.
SELECT DISTINCT ShipperName FROM LargeOrderShippers(1500)
Προσοχή: Το LargeOrderShippers είναι ακριβώς αυτό που ζητάς: Ενα resultset! Λειτουργεί με την ίδια λογική που λειτουργεί ένα view, μόνο που παίρνει παραμέτρους.
Οπου στη θέση του 1500 θα μπορούσε να είναι κάποια variable που θα περνούσες είτε καλώντας το statement με τη μορφή stored procedure είτε υπολογίζοντάς το με βάση άλλα δεδομένα.
Παναγιώτη, αν κάνω λάθος διορθώνεις ελεύθερα!
Σωτήρης Φιλιππίδης
DotSee Web Services