У меня есть этот запрос. DDIFF - это разница двух столбцов даты в таблице:
SELECT
DDIFF,
SUM(CASE WHEN Franchise = 'Franchise' THEN 1 ELSE 0 END) AS [Franchise Count],
SUM(CASE WHEN Franchise = 'Own' THEN 1 ELSE 0 END) AS [Own Count]
FROM
dbo.joined
GROUP BY
DDIFF, Franchise
ORDER BY
DDIFF
А это фрагмент вывода:
DDIFF Franchise Count Own Count
----------------------------------
NULL 0 1
-31 0 3
-28 0 13
-20 2 0
-16 1 0
-13 0 2
...
Я получаю данные о продажах для франшиз или «собственных» магазинов.
Но я хочу разделить эти числа на месяцы, поэтому мне нужно сделать какой-то цикл, чтобы получить эти два столбца для каждого месяца года (то есть столбцы 12x2)
Чтобы иметь что-то вроде этого:
DDIFF [2019.01 Franchise] [2019.01 Own] [2019.02 Franchise] [2019.02 Own] ...
-------------------------------------------------------------------------
NULL 0 1 0 1
-31 0 0 2 1
-28 0 10 0 3
-20 1 0 1 0
-16 1 0 0 0
-13 0 1 0 1
...
Полагаю, мне нужно создать какой-то цикл и добавить условие AND dateColumn = year.month
в CASE WHEN
..., чтобы построить фактический столбец для этого месяца, или даже встроенный цикл, охватывающий несколько лет.
Существует ли синтаксис, который позволяет мне создавать такие столбцы?