Pivot Table no SQL Server

Veja neste artigo transformar algumas linhas do resultado da sua query em colunas, como se fosse uma matriz.

Em alguns casos é necessário você transformar algumas linhas do resultado da sua query em colunas, como se fosse uma matriz. Segue abaixo um roteiro explicando passo a passo como você deverá fazer essa atividade, tanto no SQL Server 2000 como na versão 2005.

Criar tabela

Tabela que será utilizada para exemplificar o Pivot Table.


Figura 1: Tabela utilizada

Listagem 1: Criando a tabela

create table venda (ano int, mes int, valor numeric(9,2))

Inserir registros

Nesse passo você irá inserir alguns registros para massa de dados.

Listagem 2: Inserindo valores na tabela criada

insert venda values (2003, 2, 10) insert venda values (2003, 2, 1) insert venda values (2003, 3, 20) insert venda values (2003, 4, 30) insert venda values (2004, 1, 40) insert venda values (2004, 2, 50) insert venda values (2004, 3, 60) insert venda values (2004, 4, 70) insert venda values (2005, 1, 80) select * from venda order by 1,2,3

Figura 2: Dados inseridos

Pivot Table na versão 2000

Para fazer um Pivot Table na versão 2000 é necessário você utilizar função de grupo e a cláusula group by.

Listagem 3: Realizando o pivot no SQL Server 2000

select ano , mes_1 = sum(case when mes=1 then valor end) , mes_2 = sum(case when mes=2 then valor end) , mes_3 = sum(case when mes=3 then valor end) , mes_4 = sum(case when mes=4 then valor end) from tb_venda group by ano order by ano;

Figura 3: Pivot no SQL Server 2000

Pivot Table na versão 2005

Para essa versão já existe a função pivot dispensando agora a utilização da cláusula group by e deixando o código mais “limpo”.

Listagem 4: Pivot no SQL Server 2005

Select ano , [1] as Jan , [2] as Fev , [3] as Mar , [4] as Abr from venda pivot (sum(valor) for mes in ([1],[2],[3],[4])) p order by 1;

Figura 4: Pivot no SQL Server 2005

Conclusão

Pivot Table é um recurso muito interessante principalmente para quem trabalha com BI, onde existe a necessidade constante de transformar linhas em colunas para ter uma melhor visualização dos resultados.

Boa sorte a todos e até a próxima.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados