Я использую сервер SQL Server Compact Edition, и я хочу подсчитать количество комментариев в месяц, которые соответствуют определенному учебнику в диапазоне дат, и включают месяцы, которые имеют счет от нуля. Я знаю, что мне нужно присоединиться к таблице «Календарь» к моей таблице, чтобы учесть недостающие месяцы, но мне нужна помощь в правильной реализации этого.Подсчет записей по годам и месяцам, включая нулевые подсчеты
У меня есть таблица всех комментариев из разных учебников. Эта таблица называется Комментарии и требуемые столбцы: [Tutorial]
(nvarchar
) и [DateAdded]
(DateTime
).
Tutorial | DateAdded
---------+-------------
sample | 2013-09-02
sample | 2013-09-04
sample | 2013-09-12
sample | 2013-09-12
example | 2013-09-15
sample | 2013-09-16
sample | 2013-09-21
sample | 2013-09-30
sample | 2013-10-01
sample | 2013-11-11
sample | 2013-11-11
example | 2013-11-14
sample | 2013-11-15
sample | 2013-11-19
sample | 2013-11-21
sample | 2013-11-25
sample | 2014-02-04
sample | 2014-02-06
И у меня есть Calendar
таблицу, которая имеет год и месяц колонки, как так:
Year | Month
-----+------
2000 | 01
2000 | 02
. | .
. | .
. | .
2099 | 12
Если бы я искал для ежемесячного подсчету «образец» комментарии от прошлого года (в с 14 февраля 2014 года), то идеальный результат будет:
Tutorial | Year | Month | Count
---------+------+-------+------
sample | 2013 | 09 | 7
sample | 2013 | 10 | 1
sample | 2013 | 11 | 6
sample | 2013 | 12 | 0
sample | 2014 | 01 | 0
sample | 2014 | 02 | 2
Я был в состоянии понять, как сделать следующий запрос, но мне нужны месяцы, которые не имеют замечаний возвращать 0, как ш флигель.
SELECT
Tutorial,
datepart(year, DateAdded) AS Year,
datepart(month, DateAdded) AS Month,
COUNT(*) AS Count From Comments
WHERE
DateAdded > DATEADD(year,-1,GETDATE())
AND
Tutorial='sample'
GROUP BY
Tutorial,
datepart(year, DateAdded),
datepart(month, DateAdded)
Выход с использованием данных образца сверху.
Tutorial | Year | Month | Count
---------+------+-------+------
sample | 2013 | 09 | 7
sample | 2013 | 10 | 1
sample | 2013 | 11 | 6
sample | 2014 | 02 | 2
Я знаю, что нужно соединить таблицы, но я не могу показаться, чтобы выяснить, какие присоединиться использовать или как правильно реализовать. Имейте в виду, что это для SQL Server CE, поэтому не все команды SQL Server могут использоваться.
Большое спасибо!
Ни одно из этого будет работать с SQL CE – ErikEJ
Так я вижу, спасибо за исправление. –