wawaanjo 0 Denunciar post Postado Fevereiro 3, 2014 Tenho uma situação no qual devo buscar os funcionários que mais cometeram erro numa ligação. Então, para um determinado período (Ano / Mês), devo buscar os reincidentes, independente do produto que ele atende. Na minha query até estou conseguindo buscar esses casos através de um ROW_NUMBER, porém vem todos (incluive os funcionários que teve apenas 1 erro) Eu preciso SOMENTE dos que teve mais de um erro, e não estou conseguindo que retorne somente esses. Select Ano, Mes, Matricula_Func, Nome_funcionario, Reincidente, Id_Avaliacao, Produto, ROW_NUMBER() OVER (PARTITION BY ANO, MES, Matricula_Func, Nome_funcionario ORDER BY Reincidente DESC) RN FROM ( SELECT ANO, MES, Matricula_Func, Nome_funcionario, Trim(Nome_funcionario||Item_Pontuado) As Reincidente, Id_Avaliacao, Produto From Erros_Func Where Nome_erro = 'ERROS CRITICOS' And Data_Avaliacao Between Trunc(Add_Months(Sysdate,-4), 'MM') And Trunc(Last_Day(Add_Months(Sysdate,-1))) + 0.99999 Order By 1,2,3,4,8 ) GROUP BY Ano, Mes, Matricula_Func, Nome_funcionario, Reincidente, Id_Avaliacao, Produto; Concateno o nome do funcionario com os erros cometidos. O que aparece mais de uma vez no mes (idependente de produto) é reincidente. Nessa consulta retorna todo mundo. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Fevereiro 3, 2014 Tente com a cláusula RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING de um exemplo que uso SUM(VALOR) OVER (PARTITION BY COLUNA01,COLUNA02,COLUNA03 order by COLUNA01,COLUNA02,COLUNA03,COLUNA04 ROWS BETWEEN VN_PEROBS PRECEDING AND CURRENT ROW) AS ACUM_VALOR_X Onde VN_PEROBS é um parâmetro do usuário. Compartilhar este post Link para o post Compartilhar em outros sites