Veja nesta dica como transformar dados horizontais (registros) em colunas, na vertical, usando recurso do próprio banco de dados.
Imaginemos a tabela VENDAS na seguinte estrutura:
loja total data
1 10,00 06/05/08
2 20,00 06/05/08
3 30,00 06/05/08
1 11,00 06/05/08
2 22,00 06/05/08
3 33,00 06/05/08
Agora o objetivo: somar o valor total das vendas em uma determinada data.
Simples, não? Veja:
select loja, sum(total) from vendas where data = '05/06/2008' group by loja
E o resultado:
loja sum
1 21,00
2 42,00
3 63,00
Agora O detalhe: cada loja deve ser uma coluna! Simples? Sim, simples!
select
sum(case when loja = 1 then total else 0 end) as Loja1,
sum(case when loja = 2 then total else 0 end) as Loja2,
sum(case when loja = 3 then total else 0 end) as Loja3
from vendas where data = '05/06/2008'
Resultado:
loja1 loja2 loja3
21,00 42,00 63,00
Faça seus testes e, qualquer coisa, entre em contato.
Abraços!
Por: Antonio Milano Junior
Contato: antonio.milano@terra.com.br
|