私は同様の質問を1時間前に尋ねました。 Previous Question結果セットに欠落行を追加する
この時の状況は
私は事実と薄暗いテーブルを持っているとは異なります。前の質問比較すると、私のファクトテーブルには、以下のデータあなたが欠落しているタイトルがである参照
SKey HT TitleId Title Amount
-------- ----- --------- ------- ----------
201707 HFI 1 UK 15000.00
201707 HFI 3 LQ 16000.00
201707 HFI 5 GT 17000.00
201707 HFI 6 ML 18000.00
201707 REO 1 UK 19000.00
201707 REO 2 AF 20000.00
201707 REO 4 AL 21000.00
201707 REO 5 GT 22000.00
私を返すクエリ
select #fact.SKey, #fact.HT, #fact.TitleId, #dim.Title, #fact.Amount
from #fact
inner join #dim on #dim.TitleId = #fact.TitleId
order by #fact.SKey, #fact.HT, #fact.TitleId, #dim.Title
の下に使用してAmount
create table #fact (SKey int, HT varchar(5), TitleId int, Amount decimal(15,2))
insert into #fact values
(201707, 'HFI', 1, 15000),
(201707, 'HFI', 3, 16000),
(201707, 'HFI', 5, 17000),
(201707, 'HFI', 6, 18000),
(201707, 'REO', 1, 19000),
(201707, 'REO', 2, 20000),
(201707, 'REO', 4, 21000),
(201707, 'REO', 5, 22000)
create table #dim (TitleId int, Title varchar(10))
insert into #dim values
(1, 'UK'),
(2, 'AF'),
(3, 'LQ'),
(4, 'AL'),
(5, 'GT'),
(6, 'ML')
と呼ばれる余分なフィールドを持っています結果。たとえば、私は最初のセット( 'HFI'セット)には 'AF'と 'AL'がなく、 'REO'パートには 'LQ'と 'ML'はありません。要約すると
私は結果の下に生成するつもりです:私は現在、私は一時テーブルに最初の結果を格納していた後、0.00
としてAmoundを表示する行がないため
SKey HT TitleId Title Amount
-------- ----- --------- ------- ----------
201707 HFI 1 UK 15000.00
201707 HFI 2 AF 0.00 -- missing from first result
201707 HFI 3 LQ 16000.00
201707 HFI 4 AL 0.00 -- missing from first result
201707 HFI 5 GT 17000.00
201707 HFI 6 ML 18000.00
201707 REO 1 UK 19000.00
201707 REO 2 AF 20000.00
201707 REO 3 LQ 0.00 -- missing from first result
201707 REO 4 AL 21000.00
201707 REO 5 GT 22000.00
201707 REO 6 ML 0.00 -- missing from first result
ループ/カーソルを使用して欠落行をintに追加します。
最終結果を得るために1つのクエリを使用する方法はありますか?
正常に動作しました。再度、感謝します。 – FLICKER