【发布时间】:2010-02-20 09:08:58
【问题描述】:
我是一个卑微的程序员,讨厌 SQL ... :) 请帮我解决这个问题。
我有 4 个表,例如:
Table A:
Id Total
1 100
2 200
3 500
Table B
ExtId Amount
1 10
1 20
1 13
2 12
2 43
3 43
3 22
Table C
ExtId Amount
1 10
1 20
1 13
2 12
2 43
3 43
3 22
Table D
ExtId Amount
1 10
1 20
1 13
2 12
2 43
3 43
3 22
我需要像这样显示表 B、C 和 D 的 Amount 字段的 Id、Total 和 SUM 的 SELECT
Id Total AmountB AmountC AmountD
1 100 43 43 43
2 200 55 55 55
3 500 65 65 65
我尝试通过 Id 对三个表进行内部连接,并对金额字段进行求和,但结果不正确。这是错误的查询:
SELECT dbo.A.Id, dbo.A.Total, SUM(dbo.B.Amount) AS Expr1, SUM(dbo.C.Amount) AS Expr2, SUM(dbo.D.Amount) AS Expr3
FROM dbo.A INNER JOIN
dbo.B ON dbo.A.Id = dbo.B.ExtId INNER JOIN
dbo.C ON dbo.A.Id = dbo.C.ExtId INNER JOIN
dbo.D ON dbo.A.Id = dbo.D.ExtId
GROUP BY dbo.A.Id, dbo.A.Total
提前谢谢,只是我讨厌 SQL(或者 SQL 讨厌我)。
编辑:我有一个错字。此查询没有给出正确的结果。扩展示例。
【问题讨论】: