select firebird e delphi - tipo extrato
Boa noite,
tenho 2 tabelas . Entradas / Saidas
Gostaria de unir elas e calcular o saldo tipo Extrato:
Tabela: Entrada
DT::::::::::Vlr
1/1/2021:::100,00
10/1/2021:100,00
1/2/2021:::100,00
Tabela: Saida
DT::::::::::Vlr
5/1/2021:::50,00
12/1/2021:50,00
1/2/2021:::100,00
Resultado
DT:::::::::::ENTRADA:::::::SAIDA:::::::::SALDO
1/1/2021:::100,00:::::::::::0,00::::::::::100,00
5/1/2021::::00,00:::::::::::50,00::::::::::50,00
10/1/2021:::150,00:::::::::::0,00::::::::::200,00
12/1/2021:::::0,00:::::::::::50,00::::::::::150,00
1/2/2021:::::100,00:::::::::::100,00:::::::150,00
Alguém sabe como montar SQL no firebird ou diretamente no delphi?
tenho 2 tabelas . Entradas / Saidas
Gostaria de unir elas e calcular o saldo tipo Extrato:
Tabela: Entrada
DT::::::::::Vlr
1/1/2021:::100,00
10/1/2021:100,00
1/2/2021:::100,00
Tabela: Saida
DT::::::::::Vlr
5/1/2021:::50,00
12/1/2021:50,00
1/2/2021:::100,00
Resultado
DT:::::::::::ENTRADA:::::::SAIDA:::::::::SALDO
1/1/2021:::100,00:::::::::::0,00::::::::::100,00
5/1/2021::::00,00:::::::::::50,00::::::::::50,00
10/1/2021:::150,00:::::::::::0,00::::::::::200,00
12/1/2021:::::0,00:::::::::::50,00::::::::::150,00
1/2/2021:::::100,00:::::::::::100,00:::::::150,00
Alguém sabe como montar SQL no firebird ou diretamente no delphi?
Daniel Antonio
Curtidas 0
Respostas
Claudio Andrade
10/01/2021
Se não houver entrada e saída no mesmo dia, isso aqui deve resolver.
Fiz rápido e não testei *
Fiz rápido e não testei *
select tmp.data, tmp.entrada, tmp.saida, tmp.entrada - tmp.saida as tmp.saldo from ( select campo_data as data, campo_entrada as entrada, 0 as saida from tabela_entrada union select campo_data as data, 0 as entrada, campo_saida as saida from tabela_saida ) as tmp
GOSTEI 0
Emerson Nascimento
10/01/2021
tente algo assim:
select data_mov, sum(vlrentrada) entrada, sum(vlrsaida) saida, sum(vlrentrada - vlrsaida) over (order by data_mov) saldo from ( select dt data_mov, vlr vlrentrada, 0 vlrsaida from entrada union all select dt data_mov, 0 vlrentrada, vlr vlrsaida from saida ) mov group by data_mov order by data_mov
GOSTEI 0