2017-03-08 61 views
2

我目前正在開發我的第一個C#程序。 在後端我使用MS SQL作爲數據庫,我必須創建一個報告以顯示在我的程序中。與空值左連接同一張表

我有一張大表,裏面有來自ERP系統的數據。 在這張表中是所有每月銷售的文章。

現在我創建了一個查詢來比較不同年份的同一月份。

select A1.ArticleID, A2.ArticleID 
from Revenue A1 
left join Revenue A2 
on A1.Articlenr = A2.ArticleID 
where A1.articleyear = 2017 and A2.articleyear=A1.articleyear-1 and A1.articlemonth = 1 and A2.articlemonth=A1.articlemonth 
order by A1.ArticleID 

使用此查詢,我只收到兩年出售的文章。 但我沒有收到在2017年銷售但2016年未售出的商品。

如何強制查詢以查看這些文章?

回答

6

所有的第二個表的條件必須是ON子句中的LEFT JOIN

select A1.ArticleID, A2.ArticleID 
from Revenue A1 left join 
    Revenue A2 
    on A1.Articlenr = A2.ArticleID and 
     A2.articlemonth = A1.articlemonth and 
     A2.articleyear = A1.articleyear-1 
where A1.articleyear = 2017 and A1.articlemonth = 1 and 
order by A1.ArticleID 
+0

大,僅此而已。非常感謝。 – Dudley