Montar um SQL com debito/credito e saldo?
Boa Tarde amigos delphianos,
alguém pode me dizer a onde encontro algo para montar uma SQL com saldos? To tendo dificudade em fazer um desta forma:
Primeiro: Filtrar por mês tipo janeiro/2006 a junho/2006
depois em um dbgrid aparecer assim:
mes.................debito...............credito.............saldo......DC< br /> jan/2006.........5.000,00...................0,00...........5.000,00...D
fev/2006.........4.500,00.............2.000,00...........7.500,00...D
mar/2006..............0,00.............4.000,00...........3.500,00...D
E assim por diante
Gradecido a quem puder me ajudar.
alguém pode me dizer a onde encontro algo para montar uma SQL com saldos? To tendo dificudade em fazer um desta forma:
Primeiro: Filtrar por mês tipo janeiro/2006 a junho/2006
depois em um dbgrid aparecer assim:
mes.................debito...............credito.............saldo......DC< br /> jan/2006.........5.000,00...................0,00...........5.000,00...D
fev/2006.........4.500,00.............2.000,00...........7.500,00...D
mar/2006..............0,00.............4.000,00...........3.500,00...D
E assim por diante
Gradecido a quem puder me ajudar.
Jlimajr
Curtidas 0
Respostas
Micheus
22/06/2006
se vc postar as tabelas envolvidas talvez fique mais fácil de postar uma sugestão.
GOSTEI 0
Cpd_arim
22/06/2006
select mes, sum(debito) as debito, sum(credito) as credito, sum(credito-debito) as saldo from suatabela group by mes
GOSTEI 0
Jlimajr
22/06/2006
Obrigado amigos delphianos consegui fazer o que eu queria
Gradecido a ajuda de todos. :D
var vsaldo : double; begin vsaldo:= 0; //-------------------------calculos soma de saldos----------------------------------- aguardedadoson; with dm.calculos do begin close; sql.clear; sql.add(´select mes, ano, dataextenso, conta, sum(coalesce(valord,0))as debito, sum(coalesce(valorc,0))as credito, (sum(coalesce(valord,0)) - SUM(coalesce(valorc,0)))as saldo from tbconta´); sql.add(´WHERE (conta = ´ + quotedstr(Edit1.Text) + ´) and (ano = ´ + quotedStr(ComboBox1.Text) + ´)´); sql.add(´group by mes, ano, dataextenso, conta´); sql.add(´order by mes´); open; dm.calculos.First; while not dm.calculos.Eof do begin vsaldo:=dm.calculos.fieldbyname(´saldo´).asFloat+vsaldo; dm.calculos.FieldByName(´mes´).asString:=dm.calculos.fieldbyname(´mes´).asString; dm.calculos.FieldByName(´ano´).asString:=dm.calculos.fieldbyname(´ano´).asString; dm.calculos.FieldByName(´debito´).asFloat:=dm.calculos.FieldByName(´debito´).AsFloat; dm.calculos.FieldByName(´credito´).asFloat:=dm.calculos.FieldByName(´credito´).AsFloat; dm.calculos.FieldByName(´saldo´).asFloat:=vsaldo; dm.calculos.Next; end; end; //-----------------------------------final codigo soma de calculo------------------------------- //------------soma totaldebitos--------------- with dm.somad do begin close; sql.clear; sql.add(´select sum(coalesce(valord,0))as totdebito from tbconta´); sql.add(´WHERE (conta = ´ + quotedstr(Edit1.Text) + ´) and (ano = ´ + quotedStr(ComboBox1.Text) + ´)´); open; end; //---------------------final soma debito------------ //------------soma totalcredito--------------- with dm.somac do begin close; sql.clear; sql.add(´select sum(coalesce(valorc,0))as totcredito from tbconta´); sql.add(´WHERE (conta = ´ + quotedstr(Edit1.Text) + ´) and (ano = ´ + quotedStr(ComboBox1.Text) + ´)´); open; end; //---------------------final soma credito------------ if DM.calculos.isempty then showmessage(´Nao há registro neste numero de conta. Por favor tente novamente´); aguardedadosoff; end;
Gradecido a ajuda de todos. :D
GOSTEI 0