【发布时间】:2016-12-16 23:44:15
【问题描述】:
在查询我的 MySQL 数据库时,我试图返回 0 而不是什么都没有,因为我有一个带有图表和表格的网页,其中许多重要的行没有显示,因为查询返回 null。这是我原来的 SQL 语句:
SELECT Department, SUM(ExtVal) AS ExtVal, SUM(Quantity) AS Quantity
FROM Table1 WHERE Code <> 'AA' AND Code <> 'BB'
GROUP BY Department
ORDER BY Department
上述语句仅返回 2 个部门的数据,因为其他部门为空。这是我更新的 SQL 语句:
SELECT Department, SUM(COALESCE(ExtVal,0)) AS ExtVal, SUM(COALESCE(Quantity, 0)) AS Quantity
FROM Table1 WHERE Code <> 'AA' AND Code <> 'BB'
GROUP BY Department
ORDER BY Department
尽管有 4 个部门,但它只返回 2 个部门的数据。当我从终端运行我的 php 脚本时没有错误,我可以访问显示此数据且没有错误的网页。我尝试用 ISNULL 替换 COALESCE 函数,但它仍然不起作用。
这是输出的一些示例数据:
这是我想要输出的一些示例数据:
【问题讨论】:
-
如果您尝试使用
SUM(CASE WHEN ExtVal IS NULL THEN 0 ELSE ExtVal END)而不是SUM(COALESCE(ExtVal,0)),会发生什么? -
发布该表中的示例数据。
-
抱歉耽搁了,我现在添加了一些图片
-
您仍然需要发布一些示例 input 数据。
-
@sstan 信息直接来自 MySQL 数据库,属于机密,我不能发布。