У меня есть этот запрос
CREATE TABLE #TEMP
(
PRODUCTCLASS NVARCHAR(50),
YEAR INT,
QUARTER INT,
CUSTOMERCOUNT BIGINT
)
INSERT INTO #TEMP (PRODUCTCLASS, YEAR, QUARTER, CUSTOMERCOUNT)
SELECT
PROD.PRODUCTCLASS,
DATEPART(YEAR, P.ACTUALDT),
DATEPART(QUARTER, P.ACTUALDT),
ISNULL(COUNT(P.CUSTOMERCODE), 0)
FROM
POSTINGS AS P, PRODUCTPOSTINGS R
WHERE
PRODID = P.PRODID
GROUP BY
PRODUCTCLASS, DATEPART(YEAR, P.ACTUALDT), DATEPART(QUARTER, P.ACTUALDT)
SELECT * FROM #TEMP
Приведенный выше запрос приводит только к соответствующему кварталу взятой даты. Запрос возвращает этот результат:
PRODUCTCLASS YEAR QUARTER CUSTOMERCOUNT
---------------------------------------------
CRAFT 2018 3 20
DANCE 2017 2 18
CRAFT 2018 1 12
DANCE 2018 4 10
Результирующий набор должен содержать все кварталы этого конкретного года независимо от даты и значение NULL, которое будет отображаться, если в этом квартале нет бизнеса.
Мне нужен такой набор результатов:
PRODUCTCLASS YEAR QUARTER CUSTOMERCOUNT
---------------------------------------------------
CRAFT 2018 1 12
CRAFT 2018 2 null
CRAFT 2018 3 20
CRAFT 2018 4 null
DANCE 2017 1 NULL
DANCE 2017 2 18
DANCE 2017 3 NULL
DANCE 2017 4 NULL
DANCE 2018 1 NULL
DANCE 2018 2 NULL
DANCE 2018 3 NULL
DANCE 2018 4 10
Я пытался использовать функцию даты, но не смог получить требуемые результаты.
Искал функцию, похожую на EOMONTH, но не смог получить требуемых результатов.
Пожалуйста, помогите с этим.