Zoals Alex K heeft gezegd, moet je het schrijven als een functie met inline-tabelwaarde. Hier is het artikel dat beschrijft erover.
Kortom, de syntaxis zou zoiets zijn als
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
U kunt één selectiequery hebben (hoe complex ook, u kunt CTE gebruiken). En dan gebruik je het als
SELECT * FROM dbo.GetForPeriod('1-Jan-2010', '31-Jan-2010')