这里是详细信息
表1
rec_id, rec_amount, rec_date
1 1500 1/1/2011
2 4500 1/1/2011
3 500 1/1/2011
4 15000 1/1/2011
5 7500 1/1/2011
表2
vouc_id vouc_amount pay_date
1 15000 1/1/2011
2 750.50 1/1/2011
3 560 1/1/2011
表3
don_id d_amount d_date
1 1500 1/1/2011
2 2000 1/1/2011
我需要sum(rec_amount) from tbl1
和sum(vouc_amount) from tbl2
和sum(d_amount) from tbl3
在单个查询中where date = 1/1/2011
。有谁可以帮助我吗?
最佳答案
在表之间使用 union all 并在此基础上进行 SUM
示例
SELECT SUM(TheAmount)
FROM(
SELECT rec_amount AS TheAmount
FROM tbl1
WHERE rec_date = '20110101'
UNION ALL
SELECT vouc_amount
FROM tbl2
WHERE pay_date = '20110101'
UNION ALL
SELECT d_amount
FROM tbl3
WHERE d_date = '20110101') x
或彼此相邻
SELECT SUM(rec_amount) AS tbl1Amount,(SELECT SUM(vouc_amount)
FROM tbl2
WHERE pay_date = '20110101') AS tbl2Amount ,(SELECT SUM(d_amount)
FROM tbl3
WHERE d_date = '20110101') AS tbl3Amount
FROM tbl1
WHERE rec_date = '20110101'
关于SQL Server 在单个查询中对多个表求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5106582/