繁体   English   中英

左连接同一个表,为空

[英]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 JOINON子句中:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM