我有一个事实和维度表缺少的行添加到结果集
create table #fact (SKey int, HT varchar(5), TitleId int)
insert into #fact values
(201707, 'HFI', 1),
(201707, 'HFI', 3),
(201707, 'HFI', 5),
(201707, 'HFI', 6),
(201707, 'REO', 1),
(201707, 'REO', 2),
(201707, 'REO', 4),
(201707, 'REO', 5)
create table #dim (TitleId int, Title varchar(10))
insert into #dim values
(1, 'UK'),
(2, 'AF'),
(3, 'LQ'),
(4, 'AL'),
(5, 'GT'),
(6, 'ML')
使用下面的查询
select #fact.SKey, #fact.HT, #fact.TitleId, #dim.Title
from #fact
inner join #dim on #dim.TitleId = #fact.TitleId
order by #fact.SKey, #fact.HT, #fact.TitleId, #dim.Title
返回我下面的数据
SKey HT TitleId Title
-------- ----- --------- -------
201707 HFI 1 UK
201707 HFI 3 LQ
201707 HFI 5 GT
201707 HFI 6 ML
201707 REO 1 UK
201707 REO 2 AF
201707 REO 4 AL
201707 REO 5 GT
你看到有在结果中缺少标题。例如,第一组('HFI'组)没有'AF'和'AL','REO'部分没有'LQ'和'ML'。
总之我会产生以下结果
SKey HT TitleId Title
-------- ----- --------- -------
201707 HFI 1 UK
201707 HFI 2 AF -- missing from first result
201707 HFI 3 LQ
201707 HFI 4 AL -- missing from first result
201707 HFI 5 GT
201707 HFI 6 ML
201707 REO 1 UK
201707 REO 2 AF
201707 REO 3 LQ -- missing from first result
201707 REO 4 AL
201707 REO 5 GT
201707 REO 6 ML -- missing from first result
目前,我的第一个结果存储到一个临时表,然后使用一个循环/光标缺少的行添加到INT。
有什么办法我们只使用一个查询来获得最终结果?
有趣。谢谢。 – FLICKER
为什么Ansi风格的连接不鼓励:http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx – TheGameiswar