2013-02-20 64 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