[firebase-br] RES: RES: Ajuda com select

Flavio Divino flaviodivino em gmail.com
Sex Abr 9 10:19:16 -03 2010


Bom dia Alysson, acho que com esse exemplo de sql, poderá de ajudar
Qualquer coisa entre em contato.
Abraços,

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


Em 7 de abril de 2010 15:39, Daniel (Vipa) <daniel em vipa.com.br> escreveu:
> Olá Thiago!
>
> Faltou um Select Distinct a.filial, .......
>
> Acho que é isso.
>
> Qualquer coisa posta aí valeu!
>
>
>
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
> nome de Daniel (Vipa)
> Enviada em: quarta-feira, 7 de abril de 2010 15:29
> Para: 'FireBase'
> Assunto: [firebase-br] RES: Ajuda com select
>
> Olá Thiago!
>
> Veja se isso pode te ajudar...
>
> Select a.filial,
>  (select sum(b.qtde)
>      from suatabela b
>      where b.data=:pdata and a.filial = b.filial) D01,
>  (select sum(b.qtde)
>      from suatabela b
>      where b.data=:pdata + 1 and a.filial = b.filial) D02,
>  (select sum(b.qtde)
>      from suatabela b
>      where b.data=:pdata + 2 and a.filial = b.filial) D03, ......
> from suatabela  a
>
>
> .... preencha com o período desejado ( :pdata + 3 .... :pdata + 4)
>
>
> ou então é só criar uma procedure selecionável onde você escolhe o mês/ano
> que deseja imprimir e ela te retorna dos dias devidamente totalizado por
> filial.
>
> Espero ter ajudado.
>
> Abraços,
>
> Daniel
>
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
> nome de Thiago
> Enviada em: quarta-feira, 7 de abril de 2010 13:57
> Para: lista em firebase.com.br
> Assunto: [firebase-br] Ajuda com select
>
> Galera, boa tarde.
>
> Tenho uma tabela na seguinte estrutura.
>
> filial qtde data
> 01     1    01/04/2010
> 01     3    01/04/2010
> 01     3    02/04/2010
> 01     8    03/04/2010
> 01     5    05/04/2010
> 02     3    01/04/2010
> 02     4    04/04/2010
> 03     1    02/04/2010
>
> Com esses dados gostaria de ter um select que me retornasse o resultado
> de vendas agrupadas por dia, até ai tudo tranquilo mas gostaria de
> trazer cada dia em uma coluna do select, da seguinte forma.
>
> FL D01 D02 D03 D04 D05
> 01 004 003 008 000 005
> 02 003 000 000 004 000
> 03 000 001 000 000 000
>
> Será que exite alguma forma de fazer essa quebra, mesmo que seja por
> função, o período utilizado vai sempre ser um mês fechado.
>
> Aproveitando o gancho, eu poderia fazer isso com uma função mas ficaria
> algo muito complicado, pois faria da seguinte forma.
>
> Criaria um tipo para o retorno e traria os dados agrupados por data +
> filial e depois eu não saberia como setar o dia na variavel, existe
> alguma forma de fazer no psql como se faz por exemplo em delphi setar um
> nome do campo por uma string?
>
> Obrigado.
>
>
> ______________________________________________
> 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
>
>
> ______________________________________________
> 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