我有一个完整的日历预订。我想在10个预订的日期显示完整。我还希望在相应的日期显示用户预订,以便他知道他是否已经预订了该日期。 event.title
可以是完整或我的预订。如果有10个预订,event.title
已满。如果用户对该日期进行了预订,则event.title
我的预订,eventSource
来自数据库中的JSON编码数据。下面的代码实际上用于显示完整,但它还没有包含我的预订。
SELECT CONCAT('FULL' ) as title, counter, datee as start
FROM (
SELECT DATE_FORMAT( dateR, '%Y-%m-%d' ) AS datee,
COUNT( ID ) AS counter
FROM reservations
GROUP BY datee
)q
WHERE counter=10
我尝试使用case
,但它显示为#1242 - Subquery returns more than 1 row
。
SELECT
(case
when (select counter
FROM (
SELECT DATE_FORMAT( dateR, '%Y-%m-%d' ) AS datee,
COUNT( ID ) AS counter
FROM reservations
GROUP BY datee
) q) = 10
then "full"
end )
as title;
Zoomin:
(
SELECT DATE_FORMAT( dateR, '%Y-%m-%d' ) AS datee,
COUNT( ID ) AS counter
FROM reservations
GROUP BY datee
) q
答案 0 :(得分:1)
SELECT ymd, if (counter > 9, 'FULL', 'MY RESERVATION') AS Title
FROM (
SELECT date(dateR) AS ymd, count(*) AS counter
FROM reservations
GROUP BY 1
) AS t
或更好:
SELECT date(dateR) AS ymd, if (count(*) > 9, 'FULL', 'MY RESERVATION') AS Title
FROM reservations
GROUP BY 1
答案 1 :(得分:0)
要模拟if
语句,您可以使用case
。也许这就是你要找的东西:
SELECT CASE WHEN counter = 10 THEN 'FULL' ELSE 'MY RESERVATION' END as title,
counter, datee as start
FROM (
SELECT DATE_FORMAT( dateR, '%Y-%m-%d' ) AS datee, COUNT( ID ) AS counter
FROM reservations
GROUP BY datee
) q