Lagを使用してテーブルから項目を選択して合計し、次のような範囲の別の表から鉛を選択できますか?LAGとLEADの間で項目を選択範囲として使用
SELECT @Last = MAX(ID) from [dbo].[#Temp]
select opl.Name as [Age Categories] ,
(SELECT count([dbo].udfCalculateAge([BirthDate],GETDATE()))
FROM [dbo].[tblEmployeeDetail] ed
inner join [dbo].[tblEmployee] e
on ed.EmployeeID = e.ID
where convert(int,[dbo].udfCalculateAge(e.[BirthDate],GETDATE()))
between LAG(opl.Name) OVER (ORDER BY opl.id)
and (CASE opl.ID WHEN @Last THEN '100' ELSE opl.Name End)
) as Total
FROM [dbo].[#Temp] opl
tblEmployeeは、従業員や出産
INSERT INTO @tblEmployees VALUES
(1, 'A', 'A1', 'A', '1983/01/02'),
(2, 'B', 'B1', 'BC', '1982/01/02'),
(3, 'C', 'C1', 'JR2', '1982/10/11'),
(4, 'V', 'V1', 'G', '1990/07/12'),
(5, 'VV', 'VV1', 'J', '1992/06/02'),
(6, 'R', 'A', 'D', '1982/05/15'),
(7, 'C', 'Ma', 'C', '1984/09/29')
のそれぞれの日付が含まれている次の表は、年齢に応じて作成された一時テーブルは、ユーザなどによる入力で「20; 30; 50; 60」を生成します一時テーブルの下、使用目的球は分割
select * FROM [dbo].[Split](';','20;30;50;60')
一時テーブル
pn s
1 20
2 30
3 50
4 60
以下のような出力が必要ですが、C#のデータテーブルで列の年齢カテゴリの名前を変更できます。列全体が正確である必要があります。
これらの線に沿って何かがあなたのために働く必要がありますAge Categories Total
up to 20 0
21 - 30 2
31 - 50 5
51 - 60 0
は、私たちはあなたの問題 –
を評価することができ、あなたのサンプルデータと予想される結果を表示してくださいのGetDateの提案のためのHABOへ
おかげで、それは今少し明確に願っています。 – Prince