SQL - Как я могу изменить строки в столбцы? (ОСИ) - PullRequest
1 голос
/ 15 октября 2019

Как я могу изменить эти строки на столбцы?

это мой запрос:

SELECT [FEC_FIS], [ESTADO_DESC], COUNT(1)
FROM [DATABASE].[dbo].[TABLE]
WHERE FEC_FIS >= CONVERT(DATE,GETDATE()-7) AND ESTADO IN (2,8)
GROUP BY [FEC_FIS],[ESTADO_DESC]
ORDER BY FEC_FIS

enter image description here

В ЭТОМ

enter image description here

Ответы [ 2 ]

1 голос
/ 15 октября 2019

Использовать условную агрегацию:

SELECT 
    [FEC_FIS], 
    SUM(
        CASE
            WHEN [ESTADO_DESC] = 'PROCESADO CON ERROR' THEN 1 
            ELSE 0 
        END
    ) [PROCESADO CON ERROR],
    SUM(
        CASE
            WHEN [ESTADO_DESC] = 'TICKET REPROCESADO' THEN 1 
            ELSE 0 
        END
    ) [TICKET REPROCESADO]
FROM [DATABASE].[dbo].[TABLE]
WHERE [FEC_FIS] >= CONVERT(DATE,GETDATE()-7) AND [ESTADO] IN (2,8)
GROUP BY [FEC_FIS]
0 голосов
/ 15 октября 2019

Попробуйте для запроса ниже ...

 select * from (
    select [FEC_FIS], [ESTADO_DESC] from [DATABASE].[dbo].[TABLE] 
WHERE [FEC_FIS] >= CONVERT(DATE,GETDATE()-7) AND [ESTADO] IN (2,8)
GROUP BY [FEC_FIS],[ESTADO_DESC]
    )
    PIVOT
    (
    count(YOUR_COUNT_COLOUMN_ID) for ESTADO_DESC in ('PROCESADO CON ERROR','TICKET REPROCESADO')
    )
...