A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

SQL Server Comando PIVOT.

Apresentações semelhantes


Apresentação em tema: "SQL Server Comando PIVOT."— Transcrição da apresentação:

1 SQL Server Comando PIVOT

2 O que faz? Transforma as linhas de uma consulta em colunas

3 Onde é aplicado? Em relatórios de comparação em um período de forma agrupada Exemplo: Total vendido dos vendedores Cód. Vendedor jan fev Mar abr 1 100,00 150,00 30,00 50,00 2 120,00 3 70,00 35,00 4 10,00

4 Tabela do banco para exemplo
Uma tabela com campo Codigo,Cliente,Data e Valor_Final.

5 Resultado usando o comando mais conhecido
Abaixo é o método mais usado onde retorna em linhas o cliente e o mês com o total. Em seguida por programação as colunas são alinhadas no relatório por mês.

6 Resultado usando o comando PIVOT
Usando o comando PIVOT é possível trazer as linhas que são os meses, elas se transformam em colunas de uma vez.

7 Comparação dos resultados
Usando o comando GROUP BY Usando o comando PIVOT

8 Comando executado Select Cliente as 'Cliente',
[1] as 'jan',[2] as 'fev‘,[3] as 'mar',[4] as 'abr‘,[5] as 'mai',[6] as 'jun‘,[7] as 'jul',[8] as 'ago‘,[9] as 'set',[10] as 'out‘,[11] as 'nov',[12] as 'dez' FROM (Select MONTH(Data) as Mes, Cliente, Valor_Final FROM Venda WHERE Data>='01/01/ :00:00' AND Data<='12/31/ :59:59‘ ) as vend PIVOT ( Sum(Valor_Final) FOR Mes IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]) ) as pv ORDER BY Cliente ASC Executa o comando SELECT e monta a estrutura do resultado Busca todos campos usados no comando. Executa o comando PIVOT Resultado que aparecerá nas células Passa o campo que filtra as colunas Estes valores fixos definem o resultado da coluna. Ex: jan=1=[1]

9 Prós e contras Prós Executa em apenas um comando;
É mais rápido pois não há codificação para processar o resultado; Contras A estrutura é fixa;

10 Comando para SQL 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


Carregar ppt "SQL Server Comando PIVOT."

Apresentações semelhantes


Anúncios Google