Calcular percentual de um mesmo campo SQL
Boa Noite
Tenho uma tabela de preços, criei a seguinte query. Porém não estou conseguindo concluir
Preciso de uma ajuda! Nesse código preciso, tirar o percentual de aumento entre os procedimentos (CD_PROCEDIMENTO)
Os que tem data de vigência final são os valores anterior e os que não tem vigência final (null) são os valores atuais.
Preciso pegar o valor do (cd_procedimento) da data final (A.DT_FINAL_VIGENCIA) diminuir do mesmo valor do (cd_procedimento) só que da data de vigência final= null.
Daí tirar o percentual de quantos teve de aumento.
Será que alguém sabe como fazer esse calculo direto aqui nessa query .??
Atualmente ela trás o valor do procedimento atual e o ultimo com vigência final!
___________________________
SELECT DISTINCT
B.DS_CONVENIO,
TO_CHAR( A.DT_INICIO_VIGENCIA, 'DD/MM/YYYY')DT_INICIO_VIGENCIA,
TO_CHAR( A.DT_FINAL_VIGENCIA, 'DD/MM/YYYY')DT_FINAL_VIGENCIA,
A.VL_PROC_AJUSTADO,
A.CD_PROCEDIMENTO,
C.DS_PROC_INTERNO,
D.DS_PLANO
FROM REGRA_AJUSTE_PROC A
LEFT JOIN PROCEDIMENTO C ON (A.CD_PROCEDIMENTO = C.CD_PROCEDIMENTO)
LEFT JOIN CONVENIO B ON (A.CD_CONVENIO = B.CD_CONVENIO)
LEFT JOIN CONVENIO_PLANO D ON (A.CD_PLANO = D.CD_PLANO)
WHERE B.IE_SITUACAO = 'A'
AND C.DS_PROC_INTERNO IS NOT NULL
AND A.DT_FINAL_VIGENCIA IS NULL
UNION ALL
SELECT DISTINCT
B.DS_CONVENIO,
TO_CHAR( A.DT_INICIO_VIGENCIA, 'DD/MM/YYYY')DT_INICIO_VIGENCIA,
TO_CHAR( A.DT_FINAL_VIGENCIA, 'DD/MM/YYYY')DT_FINAL_VIGENCIA,
A.VL_PROC_AJUSTADO,
A.CD_PROCEDIMENTO,
C.DS_PROC_INTERNO,
D.DS_PLANO
FROM REGRA_AJUSTE_PROC A
LEFT JOIN PROCEDIMENTO C ON (A.CD_PROCEDIMENTO = C.CD_PROCEDIMENTO)
LEFT JOIN CONVENIO B ON (A.CD_CONVENIO = B.CD_CONVENIO)
LEFT JOIN CONVENIO_PLANO D ON (A.CD_PLANO = D.CD_PLANO)
WHERE B.IE_SITUACAO = 'A'
AND C.DS_PROC_INTERNO IS NOT NULL
AND TRUNC(A.DT_FINAL_VIGENCIA ) IN(
SELECT DISTINCT TRUNC(MAX(J.DT_FINAL_VIGENCIA))
FROM REGRA_AJUSTE_PROC J WHERE A.CD_CONVENIO = J.CD_CONVENIO)
ORDER BY 1,6
Discussão (9)
Carregando comentários...