Sql server SQL将两个联合体中的金额相加为一行
如何使用union all将两个查询的金额相加为一列一行?现在它被分解成两行,但我只希望TotalQty列上的差异在一行中Sql server SQL将两个联合体中的金额相加为一行,sql-server,sql-server-2008,tsql,Sql Server,Sql Server 2008,Tsql,如何使用union all将两个查询的金额相加为一列一行?现在它被分解成两行,但我只希望TotalQty列上的差异在一行中 select sum(begsdquantity)as 'TotalQty', CUSIPNumber, ForeignCountry from ( select sum (abs(b.begsdquantity)) begsdquantity, B.CUSIPNumber, C.FOREIGNCOUNTRY from U
select sum(begsdquantity)as 'TotalQty', CUSIPNumber, ForeignCountry
from
(
select sum (abs(b.begsdquantity)) begsdquantity, B.CUSIPNumber, C.FOREIGNCOUNTRY
from USBI.vw_NameAddressBase a
inner join USBI.vw_StockRecord b on a.FirmAccountId = b.FirmAccountId
inner join USBI.vw_SecurityBase c on b.FirmCUSIPId = c.FirmCUSIPId
WHERE '20160229' between a.EffectiveDate and a.ExpirationDate
AND '20160229' between b.EffectiveDate and b.ExpirationDate
and '20160229' between c.EffectiveDate and c.ExpirationDate
AND c.ForeignCountry NOT IN ('US', 'VA', 'RQ', 'VQ')
and b.CUSIPNumber = '654902204'
and b.AcctType in ('0')
and b.LocMemo = 's'
GROUP BY B.CUSIPNumber, C.ForeignCountry
union ALL
select sum(-b.begsdquantity) begsdquantity, B.CUSIPNumber, C.ForeignCountry
from USBI.vw_NameAddressBase a
INNER join USBI.vw_StockRecord b on a.FirmAccountId = b.FirmAccountId
inner join USBI.vw_SecurityBase c on b.FirmCUSIPId = c.FirmCUSIPId
where a.RestrDate in ('99999999')
AND a.CloseRestrictInd in ('C')
AND c.ForeignCountry NOT IN ('US', 'VA', 'RQ', 'VQ')
and '20160229' between a.EffectiveDate and a.ExpirationDate
and '20160229' between b.EffectiveDate and b.ExpirationDate
and '20160229' between c.EffectiveDate and c.ExpirationDate
and b.CUSIPNumber = '654902204'
GROUP BY B.CUSIPNumber, C.ForeignCountry
) t
group by begsdquantity, CUSIPNumber, ForeignCountry
ORDER BY CUSIPNumber
我的结果:
我在一列和一行中查找TotalQty列96061的差异。这是可能的还是我做错了什么?做最后一行
group by CUSIPNumber, ForeignCountry
i、 e通过取出组中的begsdquantity使最后一行
group by CUSIPNumber, ForeignCountry
i、 e按取出组中的BEGSD数量