クエリ (サンプルでは複雑ではない MainQuery) で、さまざまなフィールドにカウンターが必要です。これらのカウンターをすべての行ではなく別のデータセットに表示する方法はありますか? ご協力いただきありがとうございます。
WITH
MainQuery AS(
SELECT ROW_NUMBER() OVER (ORDER BY tb17.[NO]) AS OrderId,
* FROM [OFFRES] tb17),
Counters as (SELECT *,
(select MAX(OrderId) FROM MainQuery ) AS 'TotalRecs',
sum(case when [TypeLoc]=215 then 1 else 0 end) over() Loc215,
sum(case when [TypeLoc]=220 then 1 else 0 end) over() Loc220,
sum(case when [TypeLoc]=526 then 1 else 0 end) over() Loc526,
sum(case when [TypeLoc]=209 then 1 else 0 end) over() Loc209,
sum(case when [TypeLoc]=223 then 1 else 0 end) over() Loc223
/*...*/
from MainQuery
)
SELECT * FROM Counters WHERE OrderId BETWEEN 1 AND 20000
1 つのデータセットでの実際の出力:
OrderId No TypeLoc TotalRecs Loc215 Loc220 Loc526 Loc209 Loc223
1 399 218 28097 1299 1349 1324 1346 1329
2 403 223 28097 1299 1349 1324 1346 1329
3 404 223 28097 1299 1349 1324 1346 1329
4 405 223 28097 1299 1349 1324 1346 1329
5 406 223 28097 1299 1349 1324 1346 1329
私がしたい出力:
最初 - すべての結果行:
OrderId No TypeLoc
1 399 218
2 403 223
3 404 223
4 405 223
5 406 223
2 番目 - 行のすべての統計:
TotalRecs Loc215 Loc220 Loc526 Loc209 Loc223
28097 1299 1349 1324 1346 1329