Fórum SP não está funcionando corretamente #301010
27/10/2005
0
Boa tarde a todos...
Galera o que está de errado com essa SP:
[b:26f3bf9c5b]P.S: Os Parâmetros de Entrada: CLIENTE (INTEGER)
Parâmetros de Saída: LANCA_CREDITO, LANCA_DEBITO, VALOR (NUMERIC(18,2))
TIPO (CHAR(1))
CODIGO (INTEGER)
HISTORICO (VARCHAR(20))
Variáveis: SALDO_ANT_DEBITO, SALDO_ANT_CREDITO, SALDO_FINAL (NUMERIC(18,2))[/b:26f3bf9c5b]
Galera o que está de errado com essa SP:
begin saldo_ant_debito=0; saldo_ant_credito=0; select sum(conta.conta_valor) from conta where (conta.conta_tp = 0) and (conta.cli_cod = :cliente) into :saldo_ant_debito; select sum(conta.conta_valor) from conta where (conta.conta_tp = 1) and (conta.cli_cod = :cliente) into :saldo_ant_credito; if (:saldo_ant_credito is null) then saldo_ant_credito = 0.00; if (:saldo_ant_debito is null) then saldo_ant_debito = 0.00; historico = ´SALDO ANTERIOR´; valor = (saldo_ant_credito - saldo_ant_debito); saldo_final = valor; if (:valor < 0) then begin tipo = ´D´; valor = valor * -1; end else begin tipo = ´C´; end suspend; tipo = ´D´; lanca_credito = null; tipo = ´D´; for select conta.conta_desc, conta.conta_valor from conta where (conta.conta_tp = 0) and (conta.cli_cod = :cliente) into :historico, :lanca_debito do begin saldo_final = saldo_final - valor; suspend; end tipo = ´C´; lanca_debito = null; for select conta.conta_desc, conta.conta_valor from conta where (conta.conta_tp = 1) and (conta.cli_cod = :cliente) into :historico, :lanca_credito do begin saldo_final = saldo_final + valor; suspend; end lanca_debito = null; lanca_credito = null; historico = ´SALDO FINAL´; tipo = ´C´; valor = saldo_final; suspend; end
[b:26f3bf9c5b]P.S: Os Parâmetros de Entrada: CLIENTE (INTEGER)
Parâmetros de Saída: LANCA_CREDITO, LANCA_DEBITO, VALOR (NUMERIC(18,2))
TIPO (CHAR(1))
CODIGO (INTEGER)
HISTORICO (VARCHAR(20))
Variáveis: SALDO_ANT_DEBITO, SALDO_ANT_CREDITO, SALDO_FINAL (NUMERIC(18,2))[/b:26f3bf9c5b]
Crashovewrite
Curtir tópico
+ 0
Responder
Posts
27/10/2005
Emerson Nascimento
não sei o que pode estar errado, porque você não disse qual é o problema. de qualquer forma, sempre trate os valores numericos caso execute alguma operação com eles.
begin saldo_ant_debito=0; saldo_ant_credito=0; select coalesce(sum(conta.conta_valor),0) from conta where (conta.conta_tp = 0) and (conta.cli_cod = :cliente) into :saldo_ant_debito; select coalesce(sum(conta.conta_valor),0) from conta where (conta.conta_tp = 1) and (conta.cli_cod = :cliente) into :saldo_ant_credito; historico = ´SALDO ANTERIOR´; valor = (saldo_ant_credito - saldo_ant_debito); saldo_final = valor; if (:valor < 0) then begin tipo = ´D´; valor = valor * -1; end else begin tipo = ´C´; end suspend; tipo = ´D´; lanca_credito = null; for select conta.conta_desc, coalesce(conta.conta_valor,0) from conta where (conta.conta_tp = 0) and (conta.cli_cod = :cliente) into :historico, :lanca_debito do begin /*** tem certeza que é esse o cálculo??? ***/ saldo_final = saldo_final - valor; suspend; end tipo = ´C´; lanca_debito = null; for select conta.conta_desc, coalesce(conta.conta_valor,0) from conta where (conta.conta_tp = 1) and (conta.cli_cod = :cliente) into :historico, :lanca_credito do begin /*** tem certeza que é esse o cálculo??? ***/ saldo_final = saldo_final + valor; suspend; end lanca_debito = null; lanca_credito = null; historico = ´SALDO FINAL´; tipo = ´C´; valor = saldo_final; suspend; end
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)