[firebase-br] Select com Pivot

Flavio Divino flaviodivino em gmail.com
Ter Jan 31 20:07:26 -03 2012


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




Mais detalhes sobre a lista de discussão lista