如何在同一个表上对一个字段进行完全连接,对另一个字段进行内连接

时间:2012-06-18 01:11:00

标签: sql sql-server join

我的查询类似于以下内容:

select      sum(t1.qty) t1Total, sum(t2.qty) t2Total, sum(t1.qty - t2.qty) difference
from        t1 full join 
            t2 on t1.date = t2.date and t1.chain = t2.chain

我希望它在日期上进行完全连接,但是在链上进行内部连接。换句话说,一个表有链,另一个表没有,我不希望额外的链包含在总数中,但我确实想确保从两个表中的链中的所有日子都被考虑在内。

最简单的方法是什么?

1 个答案:

答案 0 :(得分:0)

在总和中使用案例陈述;当内联表上的链为空时将其设置为零。例如:

sum(case when t2.chain is null then 0 else t1.qty end) as t1Total