MySQL SUM查询

时间:2010-09-12 15:23:05

标签: sql mysql

我有两张桌子。

我正在尝试计算tbl1的SUM数量

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从列表中删除,因为它的pub是0

结果

TBL1

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

2)AND谁是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

1 个答案:

答案 0 :(得分: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
       )