2013-02-20 67 views
1
A table 
-------------------- 
id bId  txnVolume 
1 1(b table) 10.00 
2 1   5.00 
3 2   7.00 
4 3   2.00 

B table 
-------------------- 
id cId 
1 1(C table) 
2 2 
3 3 

C table 
-------------------- 
id cusId prodId 
1 1  1 
2 1  2 
3 1  1 
4 1  2 

我想获得表A上txnVolume的总和,如果C表是custId 1和prodId 1?谢谢你们的帮助!干杯!如何SUM查询3个表格?

+2

我可以很容易地编写这个查询你,但请告诉我们您的尝试。你如何在MySQL查询中“链接”表? – 2013-02-20 13:10:20

+0

考虑:http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html – xQbert 2013-02-20 13:15:38

回答

1
Select sum(coalesce(txnVolume,0)) 
FROM A INNER JOIN B on A.BID = B.Bid 
INNER JOIN C on C.ID = B.CID 
WHERE C.CustID = 1 and C.ProdID = 1 
1

尝试以下操作:

select sum(txnVolume) from A 
    join B on A.bID = B.id 
    join C on C.cID = C.id 
    where prodID = 1 and custID = 1 
1

在SQL中,你需要加入表。当表加入时,他们创建一个大表。然后,您可以将where子句添加到列中。

SELECT sum(txnVolume) 
FROM A 
JOIN B on A.bId = B.id 
JOIN C on B.cID = c.id 
where c.custid = 1 and c.prodid = 1 
1
SELECT SUM(a.txnVolume) 
FROM c 
    LEFT JOIN b 
    ON c.id=b.cId 
    LEFT JOIN a 
    ON b.id=a.bId 
WHERE c.cusId=1 AND c.prodId=1; 
1
SELECT SUM(a.txnVolume) totals 
FROM tableA a 
     INNER JOIN tablB b 
      ON a.bid = b.id 
     INNER JOIN tableC c 
      ON b.cid = c.ID 
WHERE c.custID = 1 AND c.prodID = 1