[firebase-br] SQL de período com retorno por dia

Renan Rogowski Pozzo renanrpozzo em gmail.com
Sex Ago 16 16:10:04 -03 2013


O retorno é diário, dentro do período que você pedir. Mais ou menos assim

"create or alter procedure TESTE (
    DT_INICIAL date,
    DT_FINAL date)
returns (
    DATA date,
    RECEBER numeric(18,4),
    PAGAR numeric(18,4))
as
declare variable DATAR date;
declare variable DATAP date;
declare variable REC numeric(18,4);
declare variable PAG numeric(18,4);
begin
    for
    -- select para retornar todas as contas a receber no periodo
        select data, valor
        from tabela_receber tcr
        where data between :dt_inicial and :dt_final
        into :datar, :rec
    do
    begin
    -- aqui ele vai exibir os dados e na coluna do pagar vai ficar sempre
zero
        data= :datar;
        receber = :rec;
        pagar = 0;
        suspend;
    end
    for
    -- select para retornar todas as contas a pagar no periodo
        select data, valor
        from tabela_pagar tcp
        where data between :dt_inicial and :dt_final
        into :datap, :pag
    do
    begin
    -- aqui ele vai exibir os dados e na coluna do receber vai ficar sempre
zero
          data= :datap;
          receber = 0;
          pagar= pag;
          suspend;
    end
end"


Depois você chama procedure somando os campos e agrupando.

"select data, sum(receber), sum(pagar) from teste grouop by data"

Aí ele exibe só uma vez cada dia totalizando o que é receber e o que é
pagar.

Espero ter ficado mais claro.
Abraço,
Renan



Em 16 de agosto de 2013 15:36, José Mauricio Barbisan Zottis <
bzottis em ig.com.br> escreveu:

> são duas tabelas ctapag e ctarec
>
>
> Em 16 de agosto de 2013 15:28, Renilson Santos Moura <rsmybr em gmail.com
> >escreveu:
>
> > Boa tarde!
> >
> > Considerando que os mesmos registros estejam na mesma tabela, segue
> abaixo
> > uma sugestão:
> >
> > SELECT DATA,
> > SUM(CASE TIPO_CONTA WHEN 'PAGAR' THEN VALOR ELSE 0 END) PAGAR,
> > SUM(CASE TIPO_CONTA WHEN 'RECEBER' THEN VALOR ELSE 0 END) RECEBER
> > FROM COMPROMISSO
> > WHERE DATA BETWEEN ':DATA1' AND ':DATA2'
> > GROUP BY 1
> >
> > []s
> >
> > Renilson
> >
> >
> > Em 16 de agosto de 2013 15:06, Renan Rogowski Pozzo
> > <renanrpozzo em gmail.com>escreveu:
> >
> > > Boa tarde,
> > > uma sugestão seria fazer uma procedure que retorne todas as contas a
> > > receber e pagar do período. Onde quando for conta a receber o valor do
> > > pagar fica zero e quando for pagar o valor do receber fique zero.
> > > Ex.:
> > > Data           Receber  Pagar
> > > 14/08/2013  12,00      0,00
> > > 14/08/2013   0,00      12,00
> > > 15/08/2013  12,00      0,00
> > > 15/08/2013   0,00      12,00
> > >
> > > Depois você faz um select na procedure somando os valores e agrupando
> por
> > > data.
> > > Ex.:
> > > select data, sum(receber), sum(pagar) from nome_procedure group_by data
> > >
> > > Espero ter ajudado.
> > > Abraço,
> > > Renan
> > >
> > >
> > > Em 16 de agosto de 2013 14:18, José Mauricio Barbisan Zottis <
> > > bzottis em ig.com.br> escreveu:
> > >
> > > > Pessoal, estou precisando fazer um sql que me retorne as contas a
> > > receber e
> > > > a pagar que vencem no dia
> > > >
> > > > exemplo:
> > > >
> > > >
> > > > periodo 01/08/2013 até 10/08/2013
> > > >
> > > >                            contasRec        ContaPag
> > > > dia 01/08/2013          100,00               35,00
> > > > dia 02/08/2013          245,00               340,00
> > > > dia 03/08/2013          800,00               600,00
> > > > ..........
> > > >
> > > > algué saberia como fazer?
> > > > no Delphi até sei que com um while da pra fazer, mas acredito que
> > direto
> > > em
> > > > sql seria mais rápido.
> > > >
> > > >
> > > > 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
> >
> ______________________________________________
> 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