Balancete Contábil

04/07/2004

0

Preciso mostrar em um relatório o saldo de cada conta, minha tabela de lancamentos eh:
codlancamento
nroConta
valor
tipo (´c´ ´d´)
data

Estou usando paradox. Com esta consulta consigo pegar os credito e debitos
select nroConta Contas, sum(valor) as Debito from tbItems where tipo = ´d´ e ´c ´ para os creditos
group by nroConta

agora preciso creditos d debitos para gerar o saldo por conta.
[/b]


Zion

Zion

Responder

Posts

05/07/2004

Fknyght

Ai veio e melhor voce fazer duas consultas na sua tabela

tipo assim

Var C , D : Currency; Begin Query1.Close; Query1.Sql.Clear(); Query1.Sql.Add(´select nroConta Contas, sum(valor) as Debito from tbItems where tipo= :tipo group by nroConta ´); Query1.Params[ 0 ].AsString := ´C´; Query1.Open; Try C := Query1.Fields[ 1 ].AsCurrency; Except C := 0; End; Query1.Close Query1.Params[ 0 ].AsString := ´D´; Query1.Open; Try D := Query1.Fields[ 1 ].AsCurrency; Except D := 0; End; Query1.Close; end; As Variaves C e D agora possuem respectivamente o Crédito e o Debito, agora e so fazer o que você precisa



Espero ter ajudado
:wink:


Responder

06/07/2004

Zion

na verdade eu tenho q mostrar isso em um relatório então não há passagem d parametros a consulta tem q estar pronta na hora q eu executar o relatorio tem q estar da seguinte forma:
nroConta NomeConta valorcredito valordebito saldo
11101 Caixa 100,00 50,00 50,00
11102 Banco Cont 120,00 -120,00
21001 Fornecedore 70,00 70,00
sendo q nos razonetes eu tenho

nroConta Nome Valor Tipo nrLancamento
11101 Caixa 100,00 c 27
11102 BancoCont.. 100,00 d 27
11102 BancoCont.. 20,00 d 28
21001 Fornecedore 20,00 c 28
11101 Caixa 50,00 d 29
21001 Fornecedore 50,00 c 29

Eu usei duas query´s
uma contem

select nroConta Contas, sum(valor) as Debito from tbItems where tipo = ´d´
group by nroConta

que pega os debitos
e a outra
select nroConta Contas, sum(valor) as Credito from tbItems where tipo = ´c´
group by nroConta

com os creditos
ae na query q contém os credito eu fiz um lookup para pegas os debitos atraves do nroConta, mas isso soh funciona qndo a conta contem o mesmo numero de creditos e debitos
Não sei como fazer...[size=9:57ed509350][/size:57ed509350]


Responder

06/07/2004

Fknyght

Veio voce pode fazer intaum é uma [b:99ed09d122]UNION[/b:99ed09d122]

Veja o sql abaixo
select nroConta Contas, ( sum(valor) * -1 ) as Valor from tbItems where tipo = ´d´ union select nroConta Contas, sum(valor) as Valor from tbItems where tipo = ´c´ group by nroConta



Para fazer uma [b:99ed09d122]UNION[/b:99ed09d122] os campos dos dois SELECTS tem que ser identicos ( tamanho, ordem, tipo etc etc )

Para você diferenciar o debito do crédito e facil, no primeiro select eu multipliquei o valor do SUM(TOTAL) por -1, dai vc via programação trata o valor do debito e do crédito. Ai vai depender de como você manda o relatório.

Espero ter ajuda-lo novamente :wink:


Responder

07/07/2004

Zion

Fazendo assim qndo eu edito os campos da query ela soh mostra Contas e valor
na verdade eu preciso o saldo de cada conta então eu preciso somar todos os creditos da conta - seus debitos

Seria como se fosse assim:
select nroConta Contas, sum(valor) as Credito from tbItems where tipo = ´c´
group by nroConta - select nroConta Contas, sum(valor) as Debito from tbItems where tipo = ´d´
group by nroConta




Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar