ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Somando Valores com SQL

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
rhpires
Novato
Novato


Registrado: Domingo, 25 de Mai de 2008
Mensagens: 14

MensagemEnviada: Ter Ago 30, 2011 10:59 am    Assunto: Somando Valores com SQL Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Ter Ago 30, 2011 11:15 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Ter Ago 30, 2011 3:10 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB