quarta-feira, 16 de dezembro de 2009

Usando o comando PIVOT e transformando linhas em colunas

Com o comando PIVOT, é possível transformar linhas em colunas com produtividade. Veja este exemplo abaixo:


create table registros(
  dt_venda int,
  grupo varchar(20),
  valor numeric(10,2)
)

insert into registros(dt_venda,grupo,valor)
values (2007,'Florianópolis',100.32)

insert into registros(dt_venda,grupo,valor)
values (2007,'São Paulo',300.72)

insert into registros(dt_venda,grupo,valor)
values (2007,'Rio de Janeiro',700.82)

insert into registros(dt_venda,grupo,valor)
values (2008,'Florianópolis',800.32)

insert into registros(dt_venda,grupo,valor)
values (2008,'São Paulo',700.72)

insert into registros(dt_venda,grupo,valor)
values (2008,'Rio de Janeiro',660.82)

insert into registros(dt_venda,grupo,valor)
values (2009,'Florianópolis',340.32)

insert into registros(dt_venda,grupo,valor)
values (2009,'São Paulo',120.72)

insert into registros(dt_venda,grupo,valor)
values (2009,'Rio de Janeiro',30.82)


SELECT
    Grupo AS Grupo,
    [2007],
    [2008],
    [2009]
FROM
(SELECT  
    dt_venda,
    grupo,
    valor
 FROM
    registros) AS SourceTable
PIVOT
(
    sum(valor)
    FOR dt_venda IN ([2007], [2008], [2009])
) AS PivotTable

Nenhum comentário:

Postar um comentário

Leave your comment here!