我有一个简单的问题,正在四处寻找,但无法解决。我查询了当前日期,假设明天是星期二,但其中还没有数据,因为它是 future 。而且里面还不能有记录。
当我运行查询时,它只显示 2 个名为 total | 的列日期
它按照我说的做。但现在我想让它显示 0
而不是只显示 2 列。
我确实搜索了 COALESCE,但由于某种原因它不起作用,它也没有给我任何错误。
SELECT
SUM(totalExcl) AS total,
DATE_FORMAT(date_add, '%W') AS 'Date'
FROM
ex.ps_ox_quotation
WHERE
WEEK(date_add) = WEEK (UTC_TIMESTAMP())
AND saleType IN ('IEW' , 'A', 'Project')
AND DAYOFWEEK(date_add) % 6 > 4
GROUP BY Date
ORDER BY 'Date' DESC
我有什么(表格)=
| |total | Date
我想要什么(表格)=
| |total | Date
0 Tuesday
今天是星期三,所以它是当前日期,这就是它显示的内容(顺便说一句,这是当前的)我只是在显示它:
| |total | Date
500 Wednesday
最佳答案
试试这个
SELECT
IF(SUM(totalExcl) is NULL,0,SUM(totalExcl)) AS total,
DAYNAME(date_add) AS 'Date'
FROM
ex.ps_ox_quotation
WHERE
WEEK(date_add) = WEEK (UTC_TIMESTAMP())
AND saleType IN ('IEW' , 'A', 'Project')
AND DAYOFWEEK(date_add) % 6 > 4
GROUP BY Date
ORDER BY 'Date' DESC
或者你可以这样做
SELECT
IF(SUM(totalExcl) is NULL,0,SUM(totalExcl)) AS total,
IF(DATE_FORMAT(date_add, '%W') is null,DAYNAME(now()),DATE_FORMAT(date_add, '%W')) AS 'Date'
FROM
ex.ps_ox_quotation
WHERE
WEEK(date_add) = WEEK (UTC_TIMESTAMP())
AND saleType IN ('IEW' , 'A', 'Project')
AND DAYOFWEEK(date_add) % 6 > 4
GROUP BY Date
ORDER BY 'Date' DESC
关于mysql - 如果没有找到记录,sql 将值设为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42536463/