Cálculo no select - Oracle

1 resposta
sql
J

Pessoal, tudo bem?
Estou tentando montar um relatório que me traga as 10 avaliações por fornecedor. Montei a query e tals e ta trazendo tudo de boas. Toda execução que eu fizer independente do fornecedor, me trará 10 avaliações, cada um com uma nota. Porém pra cada nota (VL_ITPERGUNTA), existe um peso que eu preciso multiplicar. Por exemplo: linha 1 multiplica por 10, linha 2 multiplica por 5, linha 3 multiplica por 10 e por aí vai até a décima linha.
existe uma tabela chamada fórmula que em seu campo sintaxe contem a seguinte informação: 10<1> + 5<2> + 10<3> + 5<4> + 10<5> + 10<6> + 5<7> + 10<8> + 10<9> + 10<10>

Saberiam como eu posso fazer essa multiplicação ou como posso utilizar essa sintaxe?

A query atual:

SELECT r.*,
      p.DS_PERGUNTA,
      i.DS_ITPERGUNTA,
      i.VL_ITPERGUNTA,
      f.NM_FORNECEDOR
    FROM ISO_RESPOSTA r,
      ISO_ITPERGUNTA i,
      ISO_PERGUNTA p,
      ISO_AVALIACAO a,
      fornecedor f
    WHERE 
    r.CD_ITPERGUNTA  = i.CD_ITPERGUNTA
    AND i.CD_PERGUNTA    = p.CD_PERGUNTA
    and r.CD_AVALIACAO = a.CD_AVALIACAO
    and a.CD_FORNECEDOR = f.CD_FORNECEDOR
    and r.CD_AVALIACAO = 99

O resultado dela:

1 Resposta

J

Cria uma tabela com os pesos, faz o join e multiplica. Sem isso teria que fazer uma gambiarra usando CASE:

https://www.mastertraining.com.br/oracle-usando-a-expressao-case/

Criado 4 de janeiro de 2019
Ultima resposta 4 de jan. de 2019
Respostas 1
Participantes 2