Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如果未找到任何记录,则sql获取零作为值_Mysql_Sql_Mariadb - Fatal编程技术网

Mysql 如果未找到任何记录,则sql获取零作为值

Mysql 如果未找到任何记录,则sql获取零作为值,mysql,sql,mariadb,Mysql,Sql,Mariadb,我有一个简单的问题,我四处看看,但不能让它为我工作。我对当前日期进行了查询,假设明天是星期二,但其中没有数据,因为这是未来。而且里面还没有记录 当我运行查询时,它只显示2个列,称为total | Date 它照我说的做。但是现在我想让它显示0,而不是只显示2列 我确实搜索了COALESCE,但由于某种原因,它不起作用,也没有给我任何错误 SELECT SUM(totalExcl) AS total, DATE_FORMAT(date_add, '%W') AS 'Date'

我有一个简单的问题,我四处看看,但不能让它为我工作。我对当前日期进行了查询,假设明天是星期二,但其中没有数据,因为这是未来。而且里面还没有记录

当我运行查询时,它只显示2个列,称为
total | Date
它照我说的做。但是现在我想让它显示
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
    500    Wednesday

尝试使用IFNULL

SELECT
    IFNULL(SUM(totalExcl),0) 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 
试试这个

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 

我想您需要“`@@ROWCOUNT``谢谢,我会尽快尝试。尝试后请告诉我。第一个可行,但在列日期给我一个空值。第二个也做了这项工作,并没有给我null,而是给了我列Date的实际日期名称。对于这两种情况,如果还没有记录的话,它给了我一个零(o)的列总数,所以它完成了任务。非常感谢。
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