まず、私の結果は次のようになります。
KONTONR | 月 | セルスカプスコード | ベロップ |
---|---|---|---|
459611 | 1 | バガ | 156000 |
459611 | 2 | バガ | 73000 |
459611 | 4 | バガ | 217000 |
459611 | 5 | バガ | 136000 |
459611 | 1 | CIVO | 45896 |
459611 | 3 | CIVO | 32498 |
459611 | 4 | CIVO | 9841 |
330096 | 1 | バガ | 42347 |
330096 | 3 | バガ | 3695 |
複数のアカウントで 2 か月の予約を表示しようとしています。アカウント ( KONTONR
) ごとに ( ) 予約が記録されている複数のコード ( SELSKAPSKODE
) があります (予約の合計はBELOP
)。BELOP
アカウント ( KONTONR
) ごとのコード ( ) ごとの月間予約 ( ) の合計の概要を示したいと思いますSELSKAPSKODE
。私の問題は、そのコードで予約が行われていない場合、そのコードが 1 か月以内に表示されないことです。これを修正する方法はありますか?コードが表示されない理由は理解できます。クエリを実行しているテーブルにコードが含まれていないからです。そして、解決策は「偽の」テーブルを作成し、それを「別の」テーブルと結合(左外部結合?)することだと思います。
私はそれを機能させることができません。私はSQLにかなり慣れていません。誰か助けてくれませんか?
私のクエリは次のようになります (「ネストされた」クエリを挿入して、結合のセットアップを行うだけです。これが理にかなっていますか?!):
SELECT TOP (100) PERCENT KONTONR, Month, SELSKAPSKODE, BELOP
FROM (
SELECT SELSKAPSKODE, KONTONR, SKIPS_KODE, MONTH(POSTDATO) AS Month, SUM(BELOP) AS BELOP
FROM dbo.T99_DETALJ
WHERE (POSTDATO >= '2012-01-01') AND (BILAGSART = 0 OR BILAGSART = 2)
GROUP BY SELSKAPSKODE, KONTONR, SKIPS_KODE, MONTH(POSTDATO)
) AS T99_summary
GROUP BY KONTONR, SELSKAPSKODE, Month, BELOP
ORDER BY KONTONR, SELSKAPSKODE, Month
結論として、欠落している月を「埋め」たいと思います (最初の表を参照)。たとえば、アカウント ( KONTONR
) 459611 の月 3 は「欠落」しています。BELOP
予約の合計 ( ) が「0」の月 3 を表示したいと思います。どんな助けでも大歓迎です、事前に感謝します!