クエリで異なる期間の異なる合計を組み合わせたい
次のクエリを使用して合計を取得します。
SELECT table1.BRS,
Sum(CASE WHEN table2.DATUM BETWEEN :van1 AND :tot1 THEN (DBBASIS-CRBASIS) ELSE (0) END)
FROM table1 INNER JOIN table2 ON (table1.id= table2.id)
WHERE table2.DATUM BETWEEN :van1 AND :tot1
group by BRS
これは意図したとおりに機能します。
2 番目の合計にアップグレードする場合
SELECT table1.BRS,
Sum(CASE WHEN table2.DATUM BETWEEN :van1 AND :tot1 THEN (DBBASIS-CRBASIS) ELSE (0) END),
Sum(CASE WHEN table2.DATUM BETWEEN :van2 AND :tot2 THEN (DBBASIS-CRBASIS) ELSE (0) END)
FROM table1 INNER JOIN table2 ON (table1.id= table2.id)
WHERE table2.DATUM BETWEEN :van1 AND :tot1 or table2.DATUM BETWEEN :van2 AND :tot2
group by BRS
データが異なっていても、2 つの重複する列で誤検知が発生します。クエリは、2 番目の合計に同じ日付を使用します。2 番目の Sum を Max 関数に変更すると、2 番目の日付が使用されます
これら 2 つの関数の結果を組み合わせる方法。
PS: Interbase は使用できません
Select * from (Select Sum from...) Join (Select Sum from...)