2010-09-12 157 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