MySQL在一个查询中使用多个SUM语句,带大小写

MySQL在一个查询中使用多个SUM语句,带大小写,mysql,Mysql,你好 我有以下MySQL查询,它统计某一天的预订数量: SELECT COUNT(CASE WHEN booking_creationdate LIKE '2020-01-31%' THEN 1 END) AS "2020-01-31", COUNT(CASE WHEN booking_creationdate LIKE '2020-02-05%' THEN 1 END) AS "2020-02-05" FROM bookingstable WHERE booking_locat

你好

我有以下MySQL查询,它统计某一天的预订数量:

SELECT
    COUNT(CASE WHEN booking_creationdate LIKE '2020-01-31%' THEN 1 END) AS "2020-01-31",
    COUNT(CASE WHEN booking_creationdate LIKE '2020-02-05%' THEN 1 END) AS "2020-02-05"
FROM bookingstable WHERE booking_location = 4
现在我想通过这个查询来计算这些天的预订价格

SELECT
    SUM(`booking_price` CASE WHEN booking_creationdate LIKE '2020-01-31%' THEN 1 END) AS "2020-01-31",
    SUM(`booking_price` CASE WHEN booking_creationdate LIKE '2020-02-05%' THEN 1 END) AS "2020-02-05"
FROM bookingstable WHERE booking_location = 4
有人会说上面提到的可能是正确的。但事实并非如此。我的错是100%。但这只是旁注,因为我还在学习MySQL

我希望有人能指出我的错误

由于以下各项正在发挥作用:

SELECT SUM(booking_price) total_from_bookings
  FROM bookingstable 
 WHERE booking_location = 4

提前谢谢

我怀疑这就是你想要的:

SELECT
    SUM(CASE WHEN booking_creationdate LIKE '2020-01-31%' THEN `booking_price` END) AS "2020-01-31",
    SUM(CASE WHEN booking_creationdate LIKE '2020-02-05%' THEN `booking_price` END) AS "2020-02-05"
FROM bookingstable 
WHERE booking_location = 4
另外,如果
booking\u creationdate
的数据类型是
datetime
,则不要将其视为字符串(即使MysQL允许)。
如果要提取列的日期部分,请使用函数
date()
,如下所示:

SELECT
    SUM(CASE WHEN DATE(booking_creationdate) = '2020-01-31' THEN `booking_price` END) AS "2020-01-31",
    SUM(CASE WHEN DATE(booking_creationdate) = '2020-02-05' THEN `booking_price` END) AS "2020-02-05"
FROM bookingstable 
WHERE booking_location = 4

我怀疑这就是你想要的:

SELECT
    SUM(CASE WHEN booking_creationdate LIKE '2020-01-31%' THEN `booking_price` END) AS "2020-01-31",
    SUM(CASE WHEN booking_creationdate LIKE '2020-02-05%' THEN `booking_price` END) AS "2020-02-05"
FROM bookingstable 
WHERE booking_location = 4
另外,如果
booking\u creationdate
的数据类型是
datetime
,则不要将其视为字符串(即使MysQL允许)。
如果要提取列的日期部分,请使用函数
date()
,如下所示:

SELECT
    SUM(CASE WHEN DATE(booking_creationdate) = '2020-01-31' THEN `booking_price` END) AS "2020-01-31",
    SUM(CASE WHEN DATE(booking_creationdate) = '2020-02-05' THEN `booking_price` END) AS "2020-02-05"
FROM bookingstable 
WHERE booking_location = 4