[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