我有以下查询:
SELECT
SUM(quantity) AS qt
FROM
stockMove
WHERE
date_mov >= '2019-04-01'
AND
date_mov <= '2019-04-30'
AND
ProductCode = '000807'
GROUP BY
ProductCode
如果在此日期范围内该产品没有动静,查询将不返回任何内容,但我需要返回0。
我已经尝试过
SELECT SUM(quantity)AS qt,COALESCE(quantity,0)
和
SELECT SUM(quantity)AS qt,IFNULL(quantity,0)
但是查询仍然返回0行。
是否可以解决我的问题?
谢谢大家。
答案 0 :(得分:0)
使用如下-
SELECT COALESCE(SUM(quantity),0) AS qt
答案 1 :(得分:0)
以您为例,只需移除GROUP BY
并使用COALESCE()
:
SELECT COALESCE(SUM(quantity), 0) AS qt
FROM stockMove
WHERE date_mov >= '2019-04-01' AND date_mov <= '2019-04-30' AND
ProductCode = '000807';
没有GROUP BY
的聚合查询总是返回一行,即使没有行匹配也是如此。返回的值为NULL
-COALESCE()
的输入来源。
使用GROUP BY
,查询根本不返回任何行。无法将任何内容转换为0
。