Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ganem

Sub consulta em Interbase

Recommended Posts

subconsulta ou alguma solucao melhor!!tenho uma tabela de extrato bancario:fields: contaid, data, valor_entra, valor_saitenho q mostrar todos os lancamentos de um periodo tipo: ---------------------------------------------------------------------------------------- CONTA ¦ SALDO ANTERIO ¦ ENTRADAS ¦ SAIDAS ¦ SALDO----------------------------------------------------------------------------------------REAL XXX 100.00 50.00 1000POUNDS XXX 160.00 150.00 200DOLAR XXX 400.00 250.00 150Como posso calcular este saldo anterior em uma unica consulta em SQL ??thank you...

Compartilhar este post


Link para o post
Compartilhar em outros sites

o mais correto seria criar na sua tabela extrato bancario as colunas saldo_anterior e saldo_atual, e a cada registro atualizado você pegaria o saldo_atual do registro anterior e atualizaria como saldo_anterior do registro atual, pois conforme a quantidade de registro cresce a tendencia é que a subquery comece a ficar lenta, pois terá que ler todos os registros anteriores ao pesquisado para dar o saldo_anterior. mas lá vai a query select a.contaid, a.valor_entra, a.valor_sai, (select sum( b.valor_entra - b.valor_sai) from extrato_bancario b where b.contaid = a.contaid and b.data < a.data) as "saldo_anterior" from extrato_bancario a where a.contaid = numero_da_conta and a.data = 'mm/dd/aaaa';caso exista mais de um lancto por dia para a mesma conta, voce terá que criar uma coluna "hora", e adiciona-la na cláusula where da subquery. "and b.hora < a.hora".espero ter ajudado ...abrçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.