Aprenda PL/SQL

Problema com cálculo

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
  

Mensagemem Sex, 09 Jun 2017 5:38 pm

Seres detentores do conhecimento neste fórum

Estou com uma problema em uma consulta SQL de um cliente, que executa um cálculo, porém mesmo que eu altere o valor dos campos o retorno é sempre o mesmo, preciso humildemente de vossos conhecimentos.

Segue código.

Neste sempre retorna 1,04
Código: Selecionar todos
SELECT ROUND (DECODE (a.ie_sexo,'M',((TO_NUMBER('1.112','999.99999999')-(TO_NUMBER('0.00043499','999.99999999')*(TO_NUMBER(TRIM(Aval(b.nr_sequencia,3032)),'999.99999999'))) + (TO_NUMBER('0.00000055','999.99999999') * (TO_NUMBER(TRIM(Aval(b.nr_sequencia,3032)),'999.99999999') * (TO_NUMBER(TRIM(Aval(b.nr_sequencia,3032)),'999.99999999')))) - (TO_NUMBER('0.00028826','999.99999999') * (TO_NUMBER(TRIM(Aval(b.nr_sequencia,2684)),'999.99999999'))))),'F',((TO_NUMBER('1.097','999.99999999')-(TO_NUMBER('0.00046971','999.99999999')*(TO_NUMBER(TRIM(Aval(b.nr_sequencia,3032)),'999.99999999'))) + (TO_NUMBER('0.00000056','999.99999999') * (TO_NUMBER(TRIM(Aval(b.nr_sequencia,3032)),'999.99999999') * (TO_NUMBER(TRIM(Aval(b.nr_sequencia,3032)),'999.99999999')))) - (TO_NUMBER('0.00012828','999.99999999') * (TO_NUMBER(TRIM(Aval(b.nr_sequencia,2684)),'999.99999999'))))),0),2) cp
FROM atendimento_paciente_v a, med_avaliacao_paciente b
WHERE b.nr_atendimento = :nr_atendimento
AND b.nr_atendimento = a.nr_atendimento
AND b.NR_SEQ_TIPO_AVALIACAO = 227
ORDER BY b.nr_sequencia DESC



Aqui sempre retorna 26
Código: Selecionar todos
SELECT ROUND(DECODE(a.ie_sexo,'M',((TO_NUMBER('4.95','999.99999999')/TO_NUMBER(TRIM(Aval(b.nr_sequencia,3036)),'999.99999999') - TO_NUMBER('4.5','999.99999999')) * 100),'F',((TO_NUMBER('4.95','999.99999999')/TO_NUMBER(TRIM(Aval(b.nr_sequencia,3036)),'999.99999999') - TO_NUMBER('4.5','999.99999999')) * 100),0),1) cp
FROM atendimento_paciente_v a, med_avaliacao_paciente b
WHERE b.nr_atendimento = :nr_atendimento
AND b.nr_atendimento = a.nr_atendimento
AND b.NR_SEQ_TIPO_AVALIACAO = 227
ORDER BY b.nr_sequencia DESC


Banco Oracle 11.2.0.4
Dualogic

Mensagemem Seg, 12 Jun 2017 7:39 am

Bom dia,

o que retorna quando você executa a função Aval isoladamente?
spernega
Localização: São Paulo - SP

Mensagemem Seg, 12 Jun 2017 8:26 am

A função Aval, retorna o valor do campo de uma tela de avaliação que tenho no meu sistema.

o valor é alimentado pelo usuário baseado nos dados coletados.
Dualogic

Mensagemem Seg, 12 Jun 2017 8:38 am

é só um palpite no escuro, mas dá a impressão que está função pode estar com algum problema e retorna sempre o mesmo valor pra sempre dar o mesmo resultado no select, independente da b.nr_sequencia.
spernega
Localização: São Paulo - SP

Mensagemem Seg, 12 Jun 2017 8:44 am

O problema é que este problema ocorre apenas com esta avaliação em específico, existem outras avaliações que os cálculos são feitos normalmente.
Dualogic

Mensagemem Seg, 12 Jun 2017 8:48 am

tem como você disponibilizar a estrutura da função e alguns b.nr_sequencia da query?
spernega
Localização: São Paulo - SP



Voltar para SQL

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes