我想从这些数据中加入3个表

时间:2014-03-11 08:51:14

标签: sql

我有3张桌子。

客户

-------------------
custID | custName |
-------------------
   1   | 1        |
   2   | 2        |
   3   | 3        |
-------------------

汽车

-------------------
carID  | custID   |
-------------------
  A    | 1        |
  B    | 1        |
  C    | 2        |
  D    | 2        |
  E    | 3        |
-------------------

纸币

-------------------------------------
billNo | carID | custID | billTotal |
-------------------------------------
1      |   A   | 1      | 100       |
2      |   B   | 1      | 100       |
3      |   D   | 2      | 100       |
4      |   E   | 3      | 100       |
5      |   A   | 1      | 100       |
6      |   C   | 2      | 100       |
7      |   C   | 2      | 100       |
8      |   E   | 3      | 100       |
9      |   B   | 1      | 100       |
10     |   D   | 2      | 100       |
11     |   A   | 1      | 100       |
12     |   E   | 3      | 100       |
13     |   E   | 3      | 100       |
14     |   B   | 1      | 100       |
-------------------------------------

我想制作JOIN 3表,如下图所示。

----------------------------------------
custID | custName | countCar | sumBill |
----------------------------------------
1      | 1        |    2     |   600   |
2      | 2        |    2     |   400   |
3      | 3        |    1     |   400   |
---------------------------------------

什么SQL代码可以使它显示这个结果??? 什么SQL代码可以使它显示这个结果??? 什么SQL代码可以使它显示这个结果??? 什么SQL代码可以使它显示这个结果??? 什么SQL代码可以使它显示这个结果???

PS.my英语不太好。

2 个答案:

答案 0 :(得分:3)

这样的东西
SELECT  c.custID,
        c.custName,
        COUNT(DISTINCT b.carID) countCar,
        SUM(b.billTotal) sumBill
FROM    customers c INNER JOIN
        bill b  ON  c.custID = b.custID
GROUP BY    c.custID,
            c.custName

查看SQL COUNT() FunctionSQL SUM() FunctionSQL GROUP BY StatementSQL Joins

答案 1 :(得分:0)

嗯,我不会告诉你确切的答案,否则你不会学习它,但我会从你的查询中写出我理解的任何内容

SELECT TableA.*, TableB.*, TableC.*
FROM TableA
    JOIN TableB
        ON TableB.aID = TableA.aID
    JOIN TableC
        ON TableC.cID = TableB.cID
 GROUP BY    TableA.aID ,
                TableA.aName