Jam*_*ett 0 sql sql-server sql-server-2008
我有下表有一个事务列表
ID FromID ToId AMOUNT
1 1 2 10
2 1 3 10
4 1 4 10
5 3 2 3
6 4 2 2
7 4 2 1
8 2 4 2
Run Code Online (Sandbox Code Playgroud)
我想知道获得用户平衡的最佳/最有效的方法.余额将是用户被给予的金额(其中ID是ToId)减去用户给出的金额之和(其中ID是FromId)的总和
有任何想法吗?
提前致谢.
詹姆士
用一个简单的总和
select SUM(Amount) from
(
select Amount from #t where ToID=@user
union all
select -Amount from #t where FromID=@user
) v
Run Code Online (Sandbox Code Playgroud)
(你可以在一行中做到......
select sum(case @user when ToID then Amount else -Amount end)
from #t where @user in (ToID, FromID)
Run Code Online (Sandbox Code Playgroud)
但我认为联盟会更有效率)
| 归档时间: |
|
| 查看次数: |
894 次 |
| 最近记录: |