Cálculo de Média no Oracle
Enviado: Qui, 19 Mar 2015 9:18 am
Bom dia prezados amigos!
Sou novo no fórum e novo também em SQL, tenha uma tarefa que não consigo resolver sozinho, preciso da ajuda de vocês!
Tenho um ERP que usa o banco de dados Oracle 11i . Neste ERP tenho uma tela onde são feitas avaliações diárias de desempenho de fornecedores.
São sete perguntas para uma avaliação, cada pergunta tem uma resposta apenas, a resposta tem um valor, gostaria de calcular a média das respostas por avaliação durante um período de data que irei usar no relatório que estou desenvolvendo.
Tentei usar o SUM mas não deu certo, pois acredito eu, que vou ter que criar uma variável para ir armazenando os valores de acordo com a resposta e depois dividir pela quantidade de avaliações. Seria isso mesmo? Se sim podem esboçar com eu faco isso?
Oque fiz até agora:
Sou novo no fórum e novo também em SQL, tenha uma tarefa que não consigo resolver sozinho, preciso da ajuda de vocês!
Tenho um ERP que usa o banco de dados Oracle 11i . Neste ERP tenho uma tela onde são feitas avaliações diárias de desempenho de fornecedores.
São sete perguntas para uma avaliação, cada pergunta tem uma resposta apenas, a resposta tem um valor, gostaria de calcular a média das respostas por avaliação durante um período de data que irei usar no relatório que estou desenvolvendo.
Tentei usar o SUM mas não deu certo, pois acredito eu, que vou ter que criar uma variável para ir armazenando os valores de acordo com a resposta e depois dividir pela quantidade de avaliações. Seria isso mesmo? Se sim podem esboçar com eu faco isso?
Oque fiz até agora:
SELECT DISTINCT
(SELECT COUNT(CD_AVALIACAO)
FROM ISO_AVALIACAO
WHERE DT_AVALIACAO=A.DT_AVALIACAO
AND CD_FORNECEDOR = A.CD_FORNECEDOR )QTDE,
A.CD_AVALIACAO,
A.DT_AVALIACAO,
A.CD_FORNECEDOR,
A.CD_ENT_PRO,
A.CD_RANKING,
/* (SELECT SUM(VL_ITPERGUNTA)
FROM ISO_ITPERGUNTA)
SOMATUDO,
(SELECT
CASE
WHEN B.CD_RESPOSTA = 22085 THEN SUM(VL_ITPERGUNTA)
END Pergunta3
FROM ISO_PERGUNTA
WHERE CD_PERGUNTA=D.CD_PERGUNTA)
SOMA_PERGUNTA, */
A.VL_NOTA,
D.CD_PERGUNTA,
DS_PERGUNTA,
DS_ITPERGUNTA,
B.CD_ITPERGUNTA,
VL_ITPERGUNTA
FROM
ISO_AVALIACAO A,
ISO_RESPOSTA B,
ISO_ITPERGUNTA C,
ISO_PERGUNTA D,
ISO_RANKING E
WHERE A.CD_AVALIACAO=B.CD_AVALIACAO
AND B.CD_ITPERGUNTA=C.CD_ITPERGUNTA
AND C.CD_PERGUNTA=D.CD_PERGUNTA
AND A.CD_RANKING=E.CD_RANKING
AND c.CD_PERGUNTA=d.CD_PERGUNTA
--AND A.CD_AVALIACAO=158518
AND A.CD_FORNECEDOR IN (301,43)
AND A.DT_AVALIACAO BETWEEN '01/03/2015' AND '12/03/2015'
GROUP BY A.CD_AVALIACAO,
A.DT_AVALIACAO,
A.CD_FORNECEDOR,
A.CD_ENT_PRO,
A.CD_RANKING,
A.VL_NOTA,
A.VL_MEDIA,
DS_ITPERGUNTA,
VL_ITPERGUNTA,
DS_PERGUNTA,
DS_RANKING,
D.CD_PERGUNTA,
B.CD_RESPOSTA,
E.CD_RANKING,
B.CD_ITPERGUNTA
ORDER BY A.CD_FORNECEDOR,
A.CD_AVALIACAO