[firebase-br] RES: Select com Pivot
Rafael Voltani
rafael.volts em turbocode.com.br
Qua Fev 1 16:20:02 -03 2012
Boa tarde Flavio
Muito obrigado pela dica, ficou perfeito,
pelo menos em um dos relatórios, que os campos são fixos...
Agora vou tentar fazer no outro, que o titulo varia conforme as opções
do usuário,
assim elimino vaaarias linhas de código... :D
[]s
Rafael Voltani
Firebird 2.5
Delphi 2010
-----Mensagem original-----
De: lista-bounces em firebase.com.br
[mailto:lista-bounces em firebase.com.br] Em nome de Flavio Divino
Enviada em: terça-feira, 31 de janeiro de 2012 20:07
Para: FireBase
Assunto: Re: [firebase-br] Select com Pivot
Bom, quando eu preciso imitar o "pivot" eu faço a consulta da seguinte
da seguinte maneira, conforme o exemplo abaixo, que pode ser usado com
count ou com o sum, mas nem sempre a dica pode funcionar, vai depender
de cada situação.
Atenciosamente,
Flávio Divino.
----------------------------------------------------------------------
----
select
os.osinfo_uf_nota,
count(case when extract(day from os.osdata_atendimento) = 1 then
os.osnumr_os END) AS "DIA 1", count(case when extract(day from
os.osdata_atendimento) = 2 then os.osnumr_os END) AS "DIA 2",
count(case when extract(day from os.osdata_atendimento) = 3 then
os.osnumr_os END) AS "DIA 3", count(case when extract(day from
os.osdata_atendimento) = 4 then os.osnumr_os END) AS "DIA 4",
count(case when extract(day from os.osdata_atendimento) = 5 then
os.osnumr_os END) AS "DIA 5", count(case when extract(day from
os.osdata_atendimento) = 6 then os.osnumr_os END) AS "DIA 6",
count(case when extract(day from os.osdata_atendimento) = 7 then
os.osnumr_os END) AS "DIA 7", count(case when extract(day from
os.osdata_atendimento) = 8 then os.osnumr_os END) AS "DIA 8",
count(case when extract(day from os.osdata_atendimento) = 9 then
os.osnumr_os END) AS "DIA 9", count(case when extract(day from
os.osdata_atendimento) = 10 then os.osnumr_os END) AS "DIA 10",
count(case when extract(day from os.osdata_atendimento) = 11 then
os.osnumr_os END) AS "DIA 11", count(case when extract(day from
os.osdata_atendimento) = 12 then os.osnumr_os END) AS "DIA 12",
count(case when extract(day from os.osdata_atendimento) = 13 then
os.osnumr_os END) AS "DIA 13", count(case when extract(day from
os.osdata_atendimento) = 14 then os.osnumr_os END) AS "DIA 14",
count(case when extract(day from os.osdata_atendimento) = 15 then
os.osnumr_os END) AS "DIA 15", count(case when extract(day from
os.osdata_atendimento) = 16 then os.osnumr_os END) AS "DIA 16",
count(case when extract(day from os.osdata_atendimento) = 17 then
os.osnumr_os END) AS "DIA 17", count(case when extract(day from
os.osdata_atendimento) = 18 then os.osnumr_os END) AS "DIA 18",
count(case when extract(day from os.osdata_atendimento) = 19 then
os.osnumr_os END) AS "DIA 19", count(case when extract(day from
os.osdata_atendimento) = 20 then os.osnumr_os END) AS "DIA 20",
count(case when extract(day from os.osdata_atendimento) = 21 then
os.osnumr_os END) AS "DIA 21", count(case when extract(day from
os.osdata_atendimento) = 22 then os.osnumr_os END) AS "DIA 22",
count(case when extract(day from os.osdata_atendimento) = 23 then
os.osnumr_os END) AS "DIA 23", count(case when extract(day from
os.osdata_atendimento) = 24 then os.osnumr_os END) AS "DIA 24",
count(case when extract(day from os.osdata_atendimento) = 25 then
os.osnumr_os END) AS "DIA 25", count(case when extract(day from
os.osdata_atendimento) = 26 then os.osnumr_os END) AS "DIA 26",
count(case when extract(day from os.osdata_atendimento) = 27 then
os.osnumr_os END) AS "DIA 27", count(case when extract(day from
os.osdata_atendimento) = 28 then os.osnumr_os END) AS "DIA 28",
count(case when extract(day from os.osdata_atendimento) = 29 then
os.osnumr_os END) AS "DIA 29", count(case when extract(day from
os.osdata_atendimento) = 30 then os.osnumr_os END) AS "DIA 30",
count(case when extract(day from os.osdata_atendimento) = 31 then
os.osnumr_os END) AS "DIA 31"
from os
where
(os.osdata_atendimento between '01/01/2010' and '01/31/2010') group
by os.osinfo_uf_nota
2012/1/31 Felix - SOL Informática <felix em soltecnologia.com.br>:
> Ola a todos!
>
> Pesquisando um pouco mais, encontrei
> http://tracker.firebirdsql.org/browse/CORE-1738
>
> No final do post o Adriano dos Santos fala sobre procedures que
> poderiam criar algo similar.
>
> Alguem tem exemplos?
>
> Fco. Felix
> www.soltecnologia.com.br
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista