gpt4 book ai didi

Mysql 在不存在的日期上返回 0

转载 作者:行者123 更新时间:2023-11-29 22:41:05 25 4
gpt4 key购买 nike

如果在指定的调用日期之前没有结果,我有兴趣在该查询中获取 0。

SELECT ifnull(count(*),0),
FROM `cdr2015`
WHERE dst in ('602','603','605')
AND ifnull(DATE_FORMAT(calldate, '%Y-%m-%d') = '2015-04-20' ,0)
AND disposition = 'NO ANSWER'
AND ((WEEKDAY(calldate) > 4)
OR
(WEEKDAY(calldate) < 5)
AND ((ifnull(DATE_FORMAT(calldate, '%T') >= '20:01:00',0))
OR (ifnull(DATE_FORMAT(calldate, '%T') <= '07:59:00',0))))
GROUP BY dst;

有什么方法可以在不存在的字段 calldate 上获取 0 吗?这是给我带来问题的代码 AND ifnull(DATE_FORMAT(calldate, '%Y-%m-%d') = '2015-04-20' ,0)。无法找到在计数上获得 0 的方法(*),我无法使用另一个表来执行 DST 字段的内部联接...

数据样本

查询

        SELECT ifnull(count(*),0) as test
FROM `cdr2015`
WHERE dst in ('602','603','605')
AND disposition = 'NO ANSWER'
AND ((WEEKDAY(calldate) > 4)
OR
(WEEKDAY(calldate) < 5)
AND ((ifnull(DATE_FORMAT(calldate, '%T') >= '20:01:00',0))
OR (ifnull(DATE_FORMAT(calldate, '%T') <= '07:59:00',0))))
GROUP BY dst;

输出:

 test
25
30
50

查询:

     SELECT ifnull(count(*),0) AS test
FROM `cdr2015`
WHERE dst in ('602','603','605')
AND ifnull(DATE_FORMAT(calldate, '%Y-%m-%d') = '2015-03-29' ,0)
AND disposition = 'NO ANSWER'
AND ((WEEKDAY(calldate) > 4)
OR
(WEEKDAY(calldate) < 5)
AND ((ifnull(DATE_FORMAT(calldate, '%T') >= '20:01:00',0))
OR (ifnull(DATE_FORMAT(calldate, '%T') <= '07:59:00',0))))
GROUP BY dst;

输出:什么都没有...

最佳答案

数据必须存在才能获得零(或任何值)作为返回。所以你将无法得到那个结果。然而,使用 COUNT(*) 它将返回一条记录,显示“0”作为无论如何找到的结果,因此一旦您更正查询中的一些括号,您就可以获得您正在寻找的结果。

您的查询中的括号有点问题。

修复括号关闭的所有行。例如:

您的代码:

SELECT ifnull(count(*),0),
FROM `cdr2015`
WHERE dst in ('602','603','605')
AND ifnull(DATE_FORMAT(calldate, '%Y-%m-%d') = '2015-04-20' ,0)

如果你这样做,可能会效果更好:

SELECT count(*)
FROM `cdr2015`
WHERE dst in ('602','603','605')
AND DATE_FORMAT(calldate, '%Y-%m-%d') = '2015-04-20'

IFNULL 位于 where 子句中完整的 AND 周围。这永远行不通。

count(*) 将始终返回一个整数,因此不需要 IFNULL 语句。

您的其他 IFNULL 语句也需要更正(出于教育目的,您可以自己执行此操作)。

关于Mysql 在不存在的日期上返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29349342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com