Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
heys, help
Em uma Tabela (Tabela NOTAS) eu tenho todas Notas que foram atribuídas a cada Monitoria.
Em outra tabela (Tabela Ofensores) eu tenho todos os itens pontuados p/ cada monitoria.
Na minha query eu preciso buscar a Produtividade de cada Monitor (da área da Qualidade) e para isso eu conto os itens que ele pontuou em cada Monitoria. Isso eu busco na tabela Ofensores, mas na mesma query eu tenho que obter a média desse Monitor e para isso eu tenho que somar as Notas de cada Monitoria buscando na tabela de Notas
Exemplo: Quero a produtividade do Monitor: João da Silva
(Tabela de NOTAS)
Select ID_MONITORIA, NOTA
From Notas
Where Nome_Monitor = 'JOÃO DA SILVA'
And Data_Monitoria Between To_Date('22/12/2013','DD/MM/YYYY') And Trunc(Last_Day(Data_Monitoria))
Order by 1;
ID_MONITORIA NOTA
26724 93
26725 97
26739 97
26740 97
26788 96
26805 96
26932 96
26943 86
obs: A soma dessas Notas = 758
Select ID_AVALIACAO, ITEM_PONTUADO
From Ofensores
Where Nome_Monitor = 'JOÃO DA SILVA'
And Data_Avaliacao Between To_Date('22/12/2013','DD/MM/YYYY') And Trunc(Last_Day(Data_Avaliacao))
Order by 1;
ID_AVALIACAO ITEM_PONTUADO
26724 Procedimento de Espera
26724 Segurança e Credibilidade
26725 Procedimento de Espera
26739 Procedimento de Espera
26740 Procedimento de Espera
26788 Realizou os questionamentos pertinentes a arvore de decisão?
26805 Procedimento de Espera
26932 Segurança e Credibilidade
26943 Atenção e Concentração
26943 Procedimento de Espera
26943 Personalização
26943 Realizou os questionamentos pertinentes a arvore de decisão?
O João da Silva pontuou 12 itens
Meu problema é: Preciso obter a soma da nota, se eu buscar da forma abaixo dá o dobro do resultado. A Qtde de notas deve vir da tabela de Notas e a Qtde de Ofensores da Tabela de Ofensores.
Essa é minha query é essa: (Observe que o campo Nota está comentado, pois do contrário ele duplica as notas (já que a monitoria na tabela de ofensores duplica em função dos itens pontuados))
SELECT ANO,
MES,
MONITOR,
---- SUM(NOTA) NOTAS,
COUNT(*) QTD_SEM4
From
( Select T1.Ano,
T1.Mes,
T2.Matricula_Avaliador As Matricula_Monitor,
T1.Nome_Avaliador As Monitor,
T1.GERENCIA,
(CASE
WHEN EXTRACT(DAY FROM TRUNC(DATA_MONITORIA)) BETWEEN 1 AND 7 THEN '1º SEM'
WHEN EXTRACT(DAY FROM TRUNC(DATA_MONITORIA)) BETWEEN 8 AND 14 THEN '2º SEM'
WHEN EXTRACT(DAY FROM TRUNC(DATA_MONITORIA)) BETWEEN 15 AND 21 THEN '3º SEM'
WHEN EXTRACT(DAY FROM TRUNC(DATA_MONITORIA)) BETWEEN 22 AND EXTRACT(DAY FROM TRUNC(LAST_DAY(DATA_MONITORIA))) THEN '4º SEM'
END) SEMANA_MES,
Decode(T1.Nome_Sessao, 'ERROS CRITICOS', 'EC', 'ENC') Tipo_Erro,
T2.Data_Monitoria,
T1.Nome_Formulario
---- T2.Nota
From Ofensores T1
Join Notas T2
On T1.Id_Avaliacao = T2.Id_Monitoria
Where Nome_Monitor = 'JOÃO DA SILVA'
AND DATA_MONITORIA Between To_Date('22/12/2013','DD/MM/YYYY') And Trunc(Last_Day(Data_Monitoria))
)
WHERE SEMANA_MES = '4º SEM'
AND TIPO_ERRO = 'ENC'
GROUP BY ANO, MES, MONITOR
==> O campo NOTAS deve ser: 758
O campo QTD_SEM4 deve ser: 12 (Observe a qtde de ITEM_PONTUADO na query isolada acima)
Alguma idéia de como fazer isso??????
Carregando comentários...