 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
rhpires Novato

Registrado: Domingo, 25 de Mai de 2008 Mensagens: 14
|
Enviada: Ter Ago 30, 2011 10:59 am Assunto: Somando Valores com SQL |
|
|
Galera é o seguinte eu tenho uma tabela assim :
ID | Valor | Data | Saldo
01 | 10,00 | 10/01/11 | 10,00
02 | 5,00 | 10/02/11 | 15,00
03 | 15,00 | 15/03/11 | 30,00
04 | -20,00 | 20/07/11 | 10,00
Como fazer em sql para o criar o campo Saldo automaticamente, tipo na hora que o usuario for efetuar o lancamento o saldo sera gerado sozinho depois que clicar num botão gravar.
Tem como fazer um campo calculado , o eu tenho que fazer uma rotina para gerar o saldo e grava-lo na tabela ??? |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Ter Ago 30, 2011 11:15 am Assunto: |
|
|
Uma alternativa para obter a coluna Saldo, dependendo do banco de dados utilizado, seria utilizar subquery mais ou menos como segue:
Código: | select
ID,
Valor,
Data,
(select sum(Valor) from Tabela where Data <= t.Data) as Saldo
from
Tabela
order by
Data |
obs: a performance não sera muito boa se esta tabela tiver muitos registros
Espero que seja útil.
Editado pela última vez por imex em Seg Fev 26, 2024 11:44 am, num total de 1 vez |
|
Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Ter Ago 30, 2011 3:10 pm Assunto: |
|
|
Ou se o banco que vc usa de para usar Stored Procedure, podemos fazer algo _ ou - assim
Obs: Fiz no firebird, outros bancos pode haver diferença no script
Código: | CREATE PROCEDURE SP_SUMSALDO (
dataini date,
datafin date)
returns (
id integer,
valor numeric(15,2),
data date,
saldo numeric(15,2))
as
declare variable saldo_tmp numeric(15,2);
begin
data = dataini;
saldo = 0;
for select ID, VALOR, DATA from TABELA
into :ID, :VALOR, :DATA do
begin
saldo = saldo + valor;
suspend;
end
end |
_________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|