Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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“大于(>)”查询始终返回0_Mysql_Date_Compare - Fatal编程技术网

Mysql“大于(>)”查询始终返回0

Mysql“大于(>)”查询始终返回0,mysql,date,compare,Mysql,Date,Compare,我正在处理一个查询,希望在其中显示即将到来的日期的数量。即使存在大于当前日期的日期,以下查询仍返回0。请帮我解决这个问题 SELECT (case when b.booked_date > cast(now() as date) then sum(1) else sum(0) end) as upcoming_booked_facilities from svk_apt_book_facilities b

我正在处理一个查询,希望在其中显示即将到来的日期的数量。即使存在大于当前日期的日期,以下查询仍返回0。请帮我解决这个问题

SELECT  (case when b.booked_date > cast(now() as date) then sum(1) else sum(0) end) as upcoming_booked_facilities                           
        from    svk_apt_book_facilities b   
        where   b.customer_id = 1
                and b.association_id = 1        
                and b.is_active = 1
        group   by b.facility_id
您需要求一个CASE表达式的和才能进行条件聚合:

SELECT
    facility_id,
    SUM(CASE WHEN booked_date > CURDATE() THEN 1 ELSE 0 END) AS upcoming_booked_facilities
FROM svk_apt_book_facilities  
WHERE
    customer_id = 1    AND
    association_id = 1 AND
    is_active = 1
GROUP BY
    facility_id;

您试图使用sum作为CASE表达式的谓词,这可能不是您想要的。请注意,我还选择了facility_id,因为您是按该列进行分组的。如果您希望对整个表进行条件求和,则不要选择或按设施分组。

非常感谢,它工作正常。我已按设施id分组,因为我需要有关单个设施的未来日期计数。