まずは私の結果は次のようになります:
| KONTONR |月| SELSKAPSKODE | BELOP |
| 459611 ---- | 1 ------ | BAGA -------------- | 156000 |
| 459611 ---- | 2 ------ | BAGA -------------- | 73000 - |
| 459611 ---- | 4 ------ | BAGA --------------- | 217000- |
| 459611 ---- | 5 ------ | BAGA --------------- | | 136000- |
| 459611 ---- | 1 ------- | CIVO --------------- | 45896 - |
| 459611 ---- | 3 ------ | CIVO ---------------- | 32498 - |
| 459611 ---- | 4 ------ | CIVO ---------------- | 9841 --- |
| 330096 ---- | 1 ------ | BAGA --------------- | 42347 - |
| 330096 --- | 3 ------- | BAGA --------------- | 3695 --- |
|等。SQLその月のテーブルにデータが存在しない場合、月に '0'値を表示する方法
私はいくつかのアカウントで月2回の予約を表示しようとしていますが、アカウントごとに(KONTONR)予約が記録されているいくつかのコード(SELSKAPSKODE)(BELOPとしての予約の合計)があります。私は1ヶ月あたりのコード(SELSKAPSKODE)ごとのアカウント(KONTONR)ごとの予約(BELOP)の合計の概要を提供したいと思います。私の問題は、そのコードに予約がない場合、コードが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は「欠落」です。私は3ヶ月間、予約の合計(BELOP)を「0」として表示したいと考えています。どんな助けもありがとうございます。
どのデータベース・サーバーを使用していますか? – M3HD1
アプリケーションはMicrosoft SQL Server 2005で動作していますが、SQL Server 2012 Management Studioを使用してデータを取得しています。 – Benne