我有两张桌子
table1 table2
numID|counts|date numID|net|tax|date
1 1 xy 1 2 1 xy
2 1 xy 2 2 1 xy
3 1 xy 3 2 1 xy
3 1 xy 4 1 1 xy
4 0 xy
因此,对于具有相同日期,numID和count = 1的行,我需要对table2求和(net + tax)。 我试着做where子句但是numID 3会被添加两次,但我需要它只加一次。应省略numID 4,因为它具有count = 0。 我的选择:
SELECT
SUM(`net`+`tax`)
FROM table1 AS d, `table2` AS c
WHERE d.date=c.date
AND d.numID=c.numID
AND `it_counts` = 1
这会两次添加numID 3,但应该是DISTINCT
。
答案 0 :(得分:0)
尝试使用相关的exists
查询重写此语句:
SELECT
SUM(`net`+`tax`)
FROM `table2` AS c
WHERE EXISTS (
SELECT 1 FROM table1 AS d
WHERE d.date=c.date
AND d.numID=c.numID
AND `it_counts` = 1)