http://sqlfiddle.com/#!9/62003/3
在上面的小提琴中,有4个不同的subid,查询是subid上的GROUP BY。但是它在GROUP BY之后为所有子项提供0。
请告知为什么它不给10和20作为2个子项的结果?我在查询中做错了什么?请告诉我。
答案 0 :(得分:3)
当您使用GROUP BY
时,您会获得每个组的结果。如果您想跳过它们,请使用HAVING
:
SELECT SUM(shippingvalue) AS shippingvalue
FROM t_product_purchase
WHERE mpkid=5
GROUP BY subid
HAVING shippingvalue <> 0;
的 SqlFiddleDemo
强>
输出:
╔═══════════════╗
║ shippingvalue ║
╠═══════════════╣
║ 10 ║
║ 20 ║
╚═══════════════╝
如果您希望在结果集中使用subid
:
SELECT subid, SUM(shippingvalue) AS shippingvalue
FROM t_product_purchase
WHERE mpkid=5
GROUP BY subid
HAVING shippingvalue <> 0
的 SqlFiddleDemo2
强>