繁体   English   中英

联接3个子查询

[英]Joining 3 Subqueries

在创建此查询时,我需要一点帮助。 我正在加入TableATableBTableB获得价值。 然后加入TableATableC并获取值。 最后,我减去了两个值。

我不确定如何使用大量的JOIN在单个查询中编写此代码,或者我只是执行2个子查询然后减去它们。

到目前为止,我有这样的事情:

SELECT SUM(A.quantity) From TableA JOIN Table B WHERE ...

然后

SELECT SUM(A.quantity) From TableA JOIN Table C WHERE ...

鉴于也许有机会TableATableB没有结果,但TableATableC呢,或者反之亦然,或者也许都有或许都不会,我不能只是JOIN TableATableBTableC

您可以通过cross join来做到这一点:

select coalesce(s1.q1, 0) - coalesce(s2.q2, 0)
from (SELECT SUM(A.quantity) as q1 From TableA JOIN Table B WHERE ...) s1 cross join
     (SELECT SUM(A.quantity) as q2 From TableA JOIN Table C WHERE ...) s2;

如果结果集之一返回NULL ,则coalesce()会将值视为0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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