[英]Left join same table with nulls
我目前正在开发我的第一个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年没有出售的文章。
如何强制查询也查看这些文章?
第二个表上的所有条件都必须在LEFT JOIN
的ON
子句中:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.