SQL连接表但获取跳过的值

时间:2018-01-08 15:50:20

标签: sql join skip

您已加入表格,代码如下。注意我使用了A.Manad = B.Manad,它连接了表A和B的月份相等的数据。但有时表B没有那个月的任何数据。我的代码只是跳过数据,我宁愿把它留空或者值为0.

代码获取Orgnr的列表,该列表是瑞典语,用于公司编号并加入两个表,其中orgnr相同且月份相同,但由于某些原因,当一个公司的值为空时,它不会加入数据。我仍然希望orgnr出现在联合表中。

select Tillnr = A.tillnr, Orgnr = A.orgnr, Månad = A.Manad, Intrastat = 
A.varde,Moms = B.vardeutf
into #Tabell1 
From
    IntrastatFsum A
    left outer join
    Momsuppg B
        on A.Orgnr = B.Orgnr
where A.Orgnr in(
165563137933,165020456017,.......)
AND A.Ar = 2017
AND B.Ar = A.AR
AND A.Manad = 9
AND A.Manad = B.Manad
AND A.InfUtf = 'U'

1 个答案:

答案 0 :(得分:0)

您应该将WHERE条款AND A.Manad = B.ManadAND B.Ar = A.AR移至LEFT JOIN条款。 这样,您将保留表IntrastatFsum中的所有数据:

select Tillnr = A.tillnr, Orgnr = A.orgnr, Månad = A.Manad, Intrastat = 
A.varde,Moms = B.vardeutf
into #Tabell1 
From
    IntrastatFsum A
    left outer join
    Momsuppg B
        on A.Orgnr = B.Orgnr
       AND A.Manad = B.Manad
       AND A.AR = B.Ar
where A.Orgnr in(
165563137933,165020456017,.......)
AND A.Ar = 2017
AND A.Manad = 9
AND A.InfUtf = 'U'