如何将两个表的行相加,然后在单个查询中将两者相减?

时间:2019-03-13 13:07:36

标签: sql sql-server

我试图获取两个不同表的SUM,然后减去两个SUM都包含Item和Quantity。

这是表格:

tables

,然后减去每个应该得出SUM(t1)= 6264和SUM(t2)= 3870的和,得出2394 问题是当我在两个表上都进行左联接时

this的结果是由于左联接

left join

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

使用有关有限联接信息的CTE,您可以解析两个表的总和,然后将它们联接在一起以获得净数量:

with 
t1 (Attribute
    ,Quantity
,as (
    select
    t1.Attribute
    ,sum(Quantity) as Quantity)
    from dbo.t1
    )
,t2(
    Attribute
    ,Quantity
,as (
    select
    t2.Attribute
    ,sum(Quantity) as Quantity)
    from dbo.t2
    )
select
t1.Attribute
,isnull(t1.Quantity - t2.Quantity,t1.Quantity) AS NetQuantity
from t1
left join t2
    on t1.Attribute = t2.Attribute;