Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wawaanjo

Buscar Casos Repetitivos (Reincidentes)

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.