SUM
表格
ID date type price limit
1 01/02/2016 1 10 3
2 02/02/2016 1 15 2
3 03/02/2016 1 10 0
4 01/02/2016 2 10 2
5 02/02/2016 2 20 2
6 03/02/2016 2 30 2
$sql = SELECT type,SUM(price) as total from table **where limit>0** GROUP BY type
Normaly会回来:
1 35
2 60
但我需要,如果类型1有任何零限制,不要计算。
***2 60***
我需要使用子查询吗?
答案 0 :(得分:1)
试试这个:
SELECT `type`, SUM(price) AS total
FROM table
GROUP BY `type`
HAVING COUNT(CASE WHEN `limit` = 0 THEN 1 END) = 0
HAVING
子句会过滤掉包含至少一行type
行的所有limit=0
个群组。