Update com subquery , porém a subquery precisa acessar uma linha/coluna da tabela que está sofrendo update!
Olá!
Preciso resolver um script MySql onde preciso efetuar cálculos como se fosse uma conta corrente, onde cada DIA tem um saldo anterior, total de entradas, total de saída e saldo atual do dia.
Porém o próximo dia deverá ter como saldo anterior o saldo atual do dia anterior,ok?
Bom, fiz um script que praticamente funcionou, porém em uma subquery preciso passar o valor da linha da tabela que está sendo atualizada, mas isso não está sendo possível.
Gostaria de ajuda, caso alguém tenha feito algo semelhante. Abaixo o script:
update gestao_centro_financeiro_diario g1
set g1.vlsaldo_inicial = (case
when idcentrofinanceirodiario = (select *
from (select min(g2.idcentrofinanceirodiario)
from gestao_centro_financeiro_diario g2
where g2.idcentrofinanceiro = 1) as inicial)
then g1.vlsaldo_inicial
else (select *
from (select g3.saldo_atual
from gestao_centro_financeiro_diario g3
where g3.idcentrofinanceirodiario = (select *
from (select max(g4.idcentrofinanceirodiario)
from gestao_centro_financeiro_diario g4
where g4.idcentrofinanceirodiario <
g1.idcentrofinanceirodiario) as id)) as saldo) end),
g1.saldo_atual = g1.vlsaldo_inicial + g1.total_entrada - g1.total_saida
where g1.idcentrofinanceiro = 1
order by g1.data
Meu problema está justamente quando no final do script, onde tem uma cláusula WHERE: **...where g4.idcentrofinanceirodiario < g1.idcentrofinanceirodiario) as id))...**
Onde a tabela **g1** é a tabela que está sofrendo o **UPDATE**.
Alguém pode ajudar como resolver? Desta ou de outra forma.Discussão (1)
Carregando comentários...