与空值左连接同一张表
问题描述:
我目前正在开发我的第一个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年未售出的商品。
如何强制查询以查看这些文章?
答
所有的第二个表的条件必须是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
大,仅此而已。非常感谢。 – Dudley