Как создать сводную таблицу? - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть строки:

PLACE   DATE_OPEN   SUM
-----------------------
PLACE1  03.09.2018  2
PLACE2  03.09.2018  2
PLACE1  04.09.2018  8
PLACE1  05.09.2018  9
PLACE2  05.09.2018  1

Я получаю строки, используя этот запрос SQL:

SELECT
    SB AS [PLACE], 
    CAST(OPEN_TIME AS DATE) AS [DATE_OPEN], 
    COUNT(ID) AS [SUM]
FROM
    [Table]
WHERE
    SB IN ('PLACE1', 'PLACE2')
GROUP BY 
    SB, CAST(OPEN_TIME AS DATE)

Я хочу получить таблицу в виде сводной таблицы, не так лиможно сделать это с помощью SQL?

Пример желаемого вывода:

PLACE   DATE_OPEN   
        03.09.2018  04.09.2018  05.09.2018
PLACE1  2           8           9
PLACE2  2                       1

1 Ответ

0 голосов
/ 18 сентября 2018

Ближайший PIVOT:

WITH Demo AS
(
    SELECT * FROM (VALUES
    ('PLACE1', '03.09.2018', 2),
    ('PLACE2', '03.09.2018', 2),
    ('PLACE1', '04.09.2018', 8),
    ('PLACE1', '05.09.2018', 9),
    ('PLACE2', '05.09.2018', 1)) T(PLACE, DATE_OPEN, [SUM])
)
SELECT * FROM Demo
PIVOT (SUM([Sum]) FOR Date_Open IN ([03.09.2018],[04.09.2018],[05.09.2018])) P

Результат

PLACE  03.09.2018  04.09.2018  05.09.2018
------ ----------- ----------- -----------
PLACE1 2           8           9
PLACE2 2           NULL        1
...