我有三张如下表。
Table 1
Name Value Details
A 1 XXA
B 2 XXB
C 3 XXC
Table 2
Name Table1 Name Data
1 A 1234
2 A 2345
3 B 4567
4 C 5678
并且
Table 3
Name Table2Data Amount
Ran1 1234 10
Ran2 2345 20
Ran3 4567 30
Ran4 4567 40
Ran5 5678 50
Ran6 1234 60
我需要获得如下所示的查询结果
Total Amount for each item in Table 1
Table 1 Row 1 (A) Table 1 Row2 (B) Table 1 Row 3 ( C) ----
90 70 50 ----
我们如何才能实现同样的目标。从三个表中我需要获取值,但需要将其排列在上面的列中。
答案 0 :(得分:2)
您可以使用条件总和。像这样:
SELECT
SUM(CASE WHEN Name='A' THEN Table3.Amount ELSE 0 END) AS A,
SUM(CASE WHEN Name='B' THEN Table3.Amount ELSE 0 END) AS B,
SUM(CASE WHEN Name='C' THEN Table3.Amount ELSE 0 END) AS C
FROM
`Table1`
JOIN Table2
ON Table1.Name=Table2.Table1Name
JOIN Table3
ON Table2.Data=Table3.Table2Data
答案 1 :(得分:0)
实际上,不需要条件和,您可以使用GROUP BY
将行组合在一起JOIN
。
SELECT
Table1.Name, SUM(Table3.Amount)
FROM
Table1
JOIN Table2 ON Table1.Name = Table2.Table1Name
JOIN Table3 ON Table2.Data = Table3.Table2Data
GROUP BY Table1.Name