我有两张桌子
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和counts = 1的行在table2上求和(净额+税额)。
我尝试执行where子句,但numID 3将被添加两次,但我只需要将其求和一次。 numID 4应该被省略,因为它的counts = 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
。 最佳答案
尝试使用相关的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)
关于mysql - 选择从表中区分以对另一个表中的值求和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10543727/