Select substring(convert(nvarchar, A.CreatedAt, 107), 0, 4) as 'Month',
COUNT(*) as 'Booked',
sum(cast(A.IsCancelled as int)) as 'Cancelled'
From ReservationTbl A
group by substring(convert(nvarchar, A.CreatedAt, 107), 0, 4)
Как я могу получить данные за предыдущие месяцы текущего года для моей диаграммы? А если нет данных за месяц, как объявить и поставить ноль на данных?
Вы пытались добавить предложение о наличии, например, имея год (A.CreatedAt) = 2018?
Какие СУБД вы используете? (Этот запрос относится к конкретному продукту.)
mssql. . . . .


Как сказал Аллан Бертельсен; используйте предложение where для года и месяца с getdate ()
Select substring(convert(nvarchar, A.CreatedAt, 107), 0, 4) as 'Month',
COUNT(*) as 'Booked',
sum(cast(A.IsCancelled as int)) as 'Cancelled'
From ReservationTbl A
where YEAR(A.CreatedAt) = YEAR(getdate())
and MONTH(A.CreatedAt) <= MONTH(getdate())
group by substring(convert(nvarchar, A.CreatedAt, 107), 0, 4)
Укажите предыдущий месяц и текущий месяц в предложении where
Select substring(convert(nvarchar, A.CreatedAt, 107), 0, 4) as 'Month',
COUNT(*) as 'Booked',
sum(cast(A.IsCancelled as int)) as 'Cancelled'
From ReservationTbl A
where YEAR(A.CreatedAt) = YEAR(getdate())
and MONTH(A.CreatedAt)>= month(DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) - 1, 0)) and MONTH(A.CreatedAt) <= MONTH(getdate())
group by substring(convert(nvarchar, A.CreatedAt, 107), 0, 4)
поставщик ожидаемых результатов и выборочных данных