Я пытаюсь создать сводную таблицу для статуса бронирования столбца на ежемесячной основе
это моя таблица и запрос
select bkg.status,
bkg.StartDate
from tbl_booking bkg
where bkg.StartDate between '2018-09-17' and '2018-10-17'
order by bkg.StartDate
Я хочу быть в формате, подобном
Date Period sep | Oct | Nov
Status 1 10 | 20 |30
Status 2 40 | 50 |60
Я пробовал следующий запрос
SELECT bkg.StartDate ,bkg.status ,
count(if(bkg.StartDate between '2018-09-17' and '2018-10-17',bkg.status,0)) as 'sep',
count(if(bkg.StartDate between '2018-10-17' and '2018-11-17',bkg.status,0)) as 'Oct'
from tbl_booking bkg
group by bkg.status
Но это дает мне результаты типа
ЕслиЯ удаляю Группу по, она дает результаты
, я также пытался
SELECT bkg.status,
count(CASE WHEN bkg.StartDate between '2018-09-17' and '2018-10-17' THEN bkg.status ELSE 0 END) AS 'sep',
count(CASE WHEN bkg.StartDate between '2018-10-17' and '2018-11-17' THEN bkg.status ELSE 0 END) AS 'Oct'
FROM tbl_booking bkg
GROUP BY bkg.status
Битовый результат, кажется, такой же.
для даты между '2018-10-17' и '2018-11-17', нет записи, поэтому она должна вернуть 0, но это дает мневсе значения счетчиков одинаковы для всех месяцев.
, пожалуйста, предложите, что я могу изменить в моем запросе