MySQL在一个查询中使用多个SUM语句,带大小写
你好 我有以下MySQL查询,它统计某一天的预订数量: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
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