Alex K が述べたように、インライン テーブル値関数として記述する必要があります。 記事 はこちら それについて説明しています。
要するに、構文は次のようになります
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
1 つの選択クエリを持つことができます (どんなに複雑でも、CTE を使用できます)。そして、それを次のように使用します
SELECT * FROM dbo.GetForPeriod('1-Jan-2010', '31-Jan-2010')