Như Alex K đã đề cập, bạn nên viết nó dưới dạng một hàm có giá trị bảng nội tuyến. Đây là bài viết mô tả về nó.
Tóm lại, cú pháp sẽ giống như
CREATE FUNCTION dbo.GetForPeriod
( @StartDate datetime, @EndDate datetime)
RETURNS TABLE
RETURN
SELECT [[ your column list ]]
FROM [[ table list]
WHERE [[some column] BETWEEN @StartDate AND @EndDate
Bạn có thể có một truy vấn chọn (tuy nhiên phức tạp, có thể sử dụng CTE). Và sau đó bạn sẽ sử dụng nó như là
SELECT * FROM dbo.GetForPeriod('1-Jan-2010', '31-Jan-2010')