2
小時前我問了類似的問題。 Previous Question將缺失的行添加到結果集中
這一次情況不同了
我有一個事實和維度表。前面的問題相比,我的事實表中有使用下面的查詢
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
返回我下面的數據
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
你看有缺失的標題中所謂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'。
總之我會產生以下結果:
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
失蹤行我想告訴Amound爲0.00
目前,我的第一個結果存儲到一個臨時表,然後使用循環/光標將缺失的行添加到int中。
有什麼辦法我們只使用一個查詢來獲得最終結果?
工作很好。再次感謝。 – FLICKER