SQL: Converter linhas em Colunas

Blog Advpl - Share knowledge

SQL: Converter linhas em Colunas

14 de março de 2022 Dicas Geral SQL 0

Já sentiu a necessidade de converter uma consulta SQL que retorna linhas para colunas?

No exemplo em questão… Tenho uma consulta que retorna valores e data, e quero trazer em colunas os meses de um periodo.

Na consulta abaixo, eu trago todas as informações em linhas

CLIENTE DATA VALOR
1 31/01/2022 100.00
2 31/01/2022 70.00
3 31/01/2022 100.00
3 28/02/2022 70.00
2 28/02/2022 103.00
1 28/02/2022 70.32
1 31/03/2022 40.33
2 31/03/2022 100.00

 

Porém, preciso que me traga os valores correspondente aos meses e estes em colunas.

CLIENTE JANEIRO FEVEREIRO MARÇO ABRIL MAIO JUNHO JULHO AGOSTO SETEMBRO OUTUBRO NOVEMBRO DEZEMBRO
1    194,00         404,00  885,00      933,00  373,00  210,00  957,00    996,00         155,00        10,00         353,00         704,00
2    741,00         145,00  829,00      150,00  831,00  284,00  350,00      63,00         389,00      469,00         746,00         860,00
3    273,00           76,00  199,00      172,00  447,00    15,00  663,00    145,00         331,00      730,00         691,00         777,00

Para este exemplo, eu tenho duas opções, usar o CASE ou usar o PIVOT do SQL.

Eu quero trazer o valor máximo (MAX), mas poderia está trazendo a média (AVG) como resultado.

Usando o CASE(), eu verifico o mês correspondente e retorno o valor.

Agora, usando o PIVOT()

O operador PIVOT no SQL Server, gera uma expressão com seus valores em tabela, ou seja, ele pega os dados que ficam em formato horizontal (linhas) e os coloca em formato vertical (Colunas).

Se você tiver outra maneira, compartilha com a gente!

Let’s Share!

 

Deixe uma resposta