Ordenar os dados em Colunas e não em Linha
Bom Dia Pessoal
Nesta consulta abaixo como podemos melhora-la para que, os meses vem em coluna e não em linha conforme esta no momento.
SELECT SUBSTRING(UD_DATA, 1, 4) AS ANO
,SUBSTRING(UD_DATA, 5, 2) AS MES
,UD_ASSUNTO
,X5_DESCRI AS DESC_ASSUNTO
,COUNT(CASE WHEN (MONTH(UD_DATA) = 1) THEN UD_ASSUNTO ELSE 0 END) TOTAL_REGISTRO
FROM SUD010(NOLOCK) SUD,SX5010
WHERE SUD.D_E_L_E_T_ = ''
AND X5_CHAVE = UD_ASSUNTO
AND X5_TABELA ='T1'
AND X5_FILIAL = UD_FILORI
AND UD_DATA >= '20210101'
AND UD_DATA <= '20231231'
GROUP BY
SUBSTRING(UD_DATA, 1, 4)
,SUBSTRING(UD_DATA, 5, 2)
,UD_ASSUNTO
, X5_DESCRI
ORDER BY 1,2,3
Nesta consulta abaixo como podemos melhora-la para que, os meses vem em coluna e não em linha conforme esta no momento.
SELECT SUBSTRING(UD_DATA, 1, 4) AS ANO
,SUBSTRING(UD_DATA, 5, 2) AS MES
,UD_ASSUNTO
,X5_DESCRI AS DESC_ASSUNTO
,COUNT(CASE WHEN (MONTH(UD_DATA) = 1) THEN UD_ASSUNTO ELSE 0 END) TOTAL_REGISTRO
FROM SUD010(NOLOCK) SUD,SX5010
WHERE SUD.D_E_L_E_T_ = ''
AND X5_CHAVE = UD_ASSUNTO
AND X5_TABELA ='T1'
AND X5_FILIAL = UD_FILORI
AND UD_DATA >= '20210101'
AND UD_DATA <= '20231231'
GROUP BY
SUBSTRING(UD_DATA, 1, 4)
,SUBSTRING(UD_DATA, 5, 2)
,UD_ASSUNTO
, X5_DESCRI
ORDER BY 1,2,3
Wanderson Fernandes
Curtidas 0
Respostas
Arthur Heinrich
26/04/2023
Você pode tentar algo mais ou menos assim:
SELECT SUBSTRING(UD_DATA, 1, 4) AS ANO, UD_ASSUNTO, X5_DESCRI AS DESC_ASSUNTO, SUM(CASE WHEN (MONTH(UD_DATA) = 1) THEN 1 ELSE 0 END) TOT_MES_01, SUM(CASE WHEN (MONTH(UD_DATA) = 2) THEN 1 ELSE 0 END) TOT_MES_02, SUM(CASE WHEN (MONTH(UD_DATA) = 3) THEN 1 ELSE 0 END) TOT_MES_03, SUM(CASE WHEN (MONTH(UD_DATA) = 4) THEN 1 ELSE 0 END) TOT_MES_04, SUM(CASE WHEN (MONTH(UD_DATA) = 5) THEN 1 ELSE 0 END) TOT_MES_05, SUM(CASE WHEN (MONTH(UD_DATA) = 6) THEN 1 ELSE 0 END) TOT_MES_06, SUM(CASE WHEN (MONTH(UD_DATA) = 7) THEN 1 ELSE 0 END) TOT_MES_07, SUM(CASE WHEN (MONTH(UD_DATA) = 8) THEN 1 ELSE 0 END) TOT_MES_08, SUM(CASE WHEN (MONTH(UD_DATA) = 9) THEN 1 ELSE 0 END) TOT_MES_09, SUM(CASE WHEN (MONTH(UD_DATA) = 10) THEN 1 ELSE 0 END) TOT_MES_10, SUM(CASE WHEN (MONTH(UD_DATA) = 11) THEN 1 ELSE 0 END) TOT_MES_11, SUM(CASE WHEN (MONTH(UD_DATA) = 12) THEN 1 ELSE 0 END) TOT_MES_12 FROM SUD010(NOLOCK) SUD, SX5010 WHERE SUD.D_E_L_E_T_ = '' AND X5_CHAVE = UD_ASSUNTO AND X5_TABELA ='T1' AND X5_FILIAL = UD_FILORI AND UD_DATA >= '20210101' AND UD_DATA <= '20231231' GROUP BY SUBSTRING(UD_DATA, 1, 4), UD_ASSUNTO, X5_DESCRI ORDER BY 1,2,3
GOSTEI 0