ビジネス レポート用の SQL クエリを作成しています。レポートには小計 (ファイル番号でグループ化) と総計の両方が必要です。
私は未知の SQL 領域に入っているので、これは少し初めての試みです。私が作成したクエリはほとんど機能しています。唯一の問題は、エントリがグループ化されていることです。レポートでそれらを分離する必要があります。
ここに私のサンプルデータがあります:
FileNumber Date 料金 3 2009 年 12 月 22 日 5 10 3 2010 年 1 月 13 日 6 15 3B 10/3/28 1 3 3B 3月 28/10 5 10
このクエリを実行すると
SELECT
CASE
WHEN (GROUPING(FileNumber) = 1) THEN NULL
ELSE FileNumber
END AS FileNumber,
CASE
WHEN (GROUPING(Date) = 1) THEN NULL
ELSE Date
END AS Date,
SUM(Cost) AS Cost,
SUM(Charge) AS Charge
FROM SubtotalTesting
GROUP BY FileNumber, Date WITH ROLLUP
ORDER BY
(CASE WHEN FileNumber IS NULL THEN 1 ELSE 0 END), -- Put NULLs after data
FileNumber,
(CASE WHEN Date IS NULL THEN 1 ELSE 0 END), -- Put NULLs after data
Date
私は以下を取得します:
FileNumber Date 料金 3 2009 年 12 月 22 日 5 10 3 2010 年 1 月 13 日 6 15 3 ヌル 11 25 3B 3 月 28/10 6 13 <-- 3B ヌル 6 13 ヌル ヌル 17 38
私が欲しいのは:
FileNumber Date 料金 3 2009 年 12 月 22 日 5 10 3 2010 年 1 月 13 日 6 15 3 ヌル 11 25 3B 2010 年 3 月 28 日 1 3 <-- 3B 3月 28/10 5 10 <-- 3B ヌル 6 13 ヌル ヌル 17 38
エントリがグループ化されている理由ははっきりとわかりますが、小計と総計を返しながらそれらを分割する方法がわかりません。
このような高度な SQL クエリを実行することに関しては、私は少し緑色です。そのため、 を使用して問題に対して間違ったアプローチを取っている場合は、WITH ROLLUP
推奨される代替案をいくつか提案してください。クエリ全体を記述する必要はありません。私は、私はいくつかの方向性が必要です。ありがとう!