2010-09-12 264 views
1

我有兩個表。MySQL SUM查詢

我試圖計算TBL1

tbl1.xid的總和量是首要,而tbl2.xid是國外

TBL1

xid pub quantity 
1 1 10   
2 1 2  
3 0 1  
4 1 5  

tbl2的

id ttype fno xid qnty 
1 A  0 1 0 
2 A  1 1 3 
3 B  1 1 4 
4 A  1 2 1 
5 A  1 3 2 
6 A  1 4 3 
7 A  1 4 1 
8 A  0 1 0 

我們正在計算tbl1數量的總和

1)衛生組織tbl1.pub是1 因此tbl1.xid 3被移除形式的列表中,爲它的酒館是0

結果

TBL1

xid pub quantity 
1 1 10   
2 1 2  
4 1 5  

2)和誰是TBL1至少有一個tbl2.xid誰的tbl2.ttype是'A',誰的tbl2.fno是'0' 因此tbl1.xid 2 & 4從列表中刪除,因爲他們都沒有至少有一個tbl2.xid誰fno是'0',誰的tbl2.ttype是'A'

結果

parent_tbl1

xid pub quantity 
1 1 10   

最終的結果應該是10

+0

所以,我一直在玩這個和 'SELECT DISTINCT( SUM(數量) )AS qnts FROM tbl1 INNER JOIN tbl2 ON tbl1.xid = tbl2.xid WHER Ë酒館= 1 AND [類型= 'A' 和FNO = 0 GROUP BY tbl2.id' 讓我下到10,但如果我再添XID(書?),以TBL 1已在tbl2的一個符合條件的記錄,我得到了一張表,其中有兩條記錄實際上總計我們正在尋找的總數。 這是就我有時間去現在,但這個難題吸引我,所以我希望以後繼續。 – d2burke 2010-09-12 16:17:40

回答

1
SELECT SUM(quantity) AS Total 
FROM tbl1 
WHERE pub=1 
AND EXISTS 
     (SELECT * 
     FROM tbl2 
     WHERE tbl2.ttype = 'A' 
     AND  tbl2.fno = 0 
     AND  tbl1.xid = tbl2.xid 
     ) 
+0

非常感謝!保持! – Nich 2010-09-12 17:32:37