Sql server 从两个表中减去总数
我有两张存单和取款单Sql server 从两个表中减去总数,sql-server,Sql Server,我有两张存单和取款单 Deposit Table: AccountNumber Amount 1 200 1 400 1 150 Total=750 Withdrawal Table: AccountNumber Amount 1 100 1 300 1 150 Total=550
Deposit Table:
AccountNumber Amount
1 200
1 400
1 150
Total=750
Withdrawal Table:
AccountNumber Amount
1 100
1 300
1 150
Total=550
我需要一个查询,将每个表的总数加起来,并按AccountNumber减去(存款取款)组(750-550)=200,类似于:
TotalBalance Table:
AccountNumber Amount
1 200
我试过Karamafrooz的答案
选择SUM(d.amount)-SUM(w.amount)
从存款为d内部联接取款为w
在d.AccountNumber=w.AccountNumber上
按d.AccountNumber分组
但我得到了错误的价值观
很抱歉,现在我有第三张桌子叫利润:
Profit Table:
AccountNumber Amount
1 100
1 200
1 150
Total=450
我需要总计(存款+利润提取)
我该怎么做?jim31415解决方案在第一种情况下非常有效这使用子查询来获取每个表中每个帐户的总计。然后,对金额进行合计。请注意,取款金额为负数,sum(-d.amount)
select
AccountNumber,
sum(Amount) as Balance
from (
select d.AccountNumber as AccountNumber, sum(d.Amount) as Amount from Deposit d group by d.AccountNumber
union
select d.AccountNumber, sum(-d.Amount) from Withdrawal d group by d.AccountNumber
) as t
group by AccountNumber
询问代码的问题必须证明对正在解决的问题的最低理解。包括尝试的解决方案,以及它们不起作用的原因。我是sql server新手,但找不到解决方案。你找不到解决方案,或者你什么都不能尝试?@jcolebrand我复制并粘贴了结束原因。我将截短部分,询问为什么它不起作用。@jcolebrand公平地说,Fresh几乎一字不差地复制了接近原因。因此,也许你应该向meta求助,要求更改措辞。