none
Dúvida Acumulção de Saldo SQL Server RRS feed

  • Pergunta

  • Olá pessoal. Estou com uma dúvida referente a essa questão de saldo e gostaria de compartilhar com vocês para saber se alguém pode me auxiliar a resolver.

    Eu criei uma procedure para retornar um extrato da conta "corrente" e 2 saldos...  Eu usei o union all, assim dessa forma o saldo que está numa tabela de saldo somente será mostrado na primeira linha... as demais linha eu preciso trazer o saldo de acordo com a transação, Crédito ou Débito da conta... ou seja um valor de saldo acumulado.
    Exemplo:            (DESCRIÇÃO)                             VR_MOVIMENTO       SALDO1             SALDO2     
    LINHA 1:       SALDO ANTERIOR                                          -               10000,00           5000,00

    LINHA 2:      PAGAMENTO DE ENERGIA                        100,00                9900,00            4900,00

    LINHA 3: RECEBIMENTO DE VENDA                             500,00               10400,00           5400,00     

    Esses saldos 1 e 2 são acumulativos...

    Vocês têm alguma idéia de como resolver esse problema dentro do SQL Server modificando minha procedure?
    A solução mais próxima que encontrei foi a seguinte...
    TENHO 2 VARIÁVEIS @SALDO1 E @SALDO2
    Que jogo nelas através de um select esses saldo anteriors...
    As demais linhas deveriam ser: SALDO1 = SALDO1 + VR_MOVIMENTO (EM CASO DE CRÉDITO) E EM CÁSO DE DÉBITO SALDO1=SALDO1+VR_MOVIMENTO.

    Se alguém puder me ajudar ficaria grato.
    Att
    Charles


    Charles Tempo Rocha
    • Movido Gustavo Maia Aguiar sexta-feira, 18 de setembro de 2009 17:25 (De:SQL Server - Desenvolvimento Geral)
    sexta-feira, 18 de setembro de 2009 14:55

Todas as Respostas

  • Charles,

    Não entendi o que você esta querendo?

    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    sexta-feira, 18 de setembro de 2009 19:55
    Moderador
  • Boa Noite,

    Essa seria uma pergunta mais pertinente ao fórum "SQL Server - Programação Avançada" e não há "SQL Server - Gerenciamento, Configuração, Instalação, Segurança" já que é uma dúvida mais voltada a Transact SQL e não ao gerenciamento do produto, mas vamos lá. Segue um exemplo que poderá ajudá-lo

    declare @t table (linha int, descricao varchar(200), vr_movimento smallmoney)
    insert into @t values (1,'SALDO ANTERIOR',0)
    insert into @t values (2,'PAGAMENTO DE ENERGIA',100)
    insert into @t values (3,'RECEBIMENTO DE VENDA',500)
    declare @saldo1ini smallmoney, @saldo2ini smallmoney
    select @saldo1ini = 10000, @saldo2ini = 5000
    select linha, descricao, vr_movimento,
     @saldo1ini - (select SUM(vr_movimento) from @t As TInt WHERE TOut.linha >= TInt.linha) As Saldo1,
     @saldo2ini - (select SUM(vr_movimento) from @t As TInt WHERE TOut.linha >= TInt.linha) As Saldo2
    from @t as TOut


    Opcionalmente recomendo o Webcast abaixo:

    Webcast - Dicas e truques sobre consultas complexas no SQL Server
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!162.entry

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Outra alternativa para concatenar registros no SQL Server
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!727.entry


    Classifique as respostas. O seu feedback é imprescindível
    quarta-feira, 23 de setembro de 2009 23:05