2

まず、私の結果は次のようになります。

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 を表示したいと思います。どんな助けでも大歓迎です、事前に感謝します!

4

3 に答える 3

0

すべてを実行したくない場合は、次のように変更することもできます: SUM(BELOP) を次のように変更できます: Sum (BELOP が null でない場合は 1、そうでない場合は 0 終了)

于 2013-02-09T19:10:19.033 に答える