我有两张桌子。
我正在尝试计算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
答案 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
)