Paulo Lima Postado 22 de Setembro de 2021 Tópicos Que Criei: 6 Tópicos/Dia: 0.00 Meu Conteúdo: 17 Conteúdo/Dia: 0.01 Reputação: 1 Pontos/Conquistas: 146 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Dispositivo: Windows Denunciar Compartilhar Postado 22 de Setembro de 2021 Estou tentando gerar o tempo médio em que um chamado fica com um determinado atendente no Agilis. Até aí tudo bem, pois tenho uma tabela de repasses e basta realizar a média do tempo em que um repasse fica com um determinado atendente. O problema é que eu preciso subtrair deste tempo o período em que um chamado fica com o status AGUARDANDO TERCEIROS e AGENDADO. sendo que este status fica armazenado em uma outra tabela, no caso a HSTATUSATEND. O caso fica ainda mais complexo porque o chamado poderá passar por vários atendentes estando com um mesmo status (esse tempo do status deverá ser quebrado por atendente, neste caso) e um chamado poderá ter também vários status com um único atendente. fiz a consulta para exibir o status que um chamado passa por toda a sua vida útil e uma outra com o histórico de repasses. estou anexando as duas neste tópico. O que eu preciso é calcular o tempo médio que um chamado ficou com um determinado atendente, subtraindo deste tempo o período em que este atendimento ficou com o Status AGUARDANDO TERCEIROS e AGENDADO. desde já agradeço. consulta de repasses.txt consulta de status do atendimento.txt Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
omar Postado 22 de Setembro de 2021 Tópicos Que Criei: 59 Tópicos/Dia: 0.01 Meu Conteúdo: 820 Conteúdo/Dia: 0.16 Reputação: 107 Pontos/Conquistas: 4.791 Conteúdo Resolvido: 0 Dias Ganho: 74 Status: Online Idade: 61 Dispositivo: Windows Denunciar Compartilhar Postado 22 de Setembro de 2021 Boa tarde. Usamos esta consulta para apresentar o status da aprovação dos movimentos do compras. Status Aprovação.txt Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Paulo Lima Postado 23 de Setembro de 2021 Tópicos Que Criei: 6 Tópicos/Dia: 0.00 Meu Conteúdo: 17 Conteúdo/Dia: 0.01 Reputação: 1 Pontos/Conquistas: 146 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Dispositivo: Windows Autor Denunciar Compartilhar Postado 23 de Setembro de 2021 Obrigado, infelizmente não ajudou. A lógica que eu preciso é um pouco diferente. Acho que primeiro eu preciso verificar por quanto tempo um chamado ficou parado em um determinado Status. Ou seja, observando o chamado eu tenho que calcular qual foi o tempo em que ele ficou de "AGUARDANDO TERCEIROS" para o proximo status que é o "em andamento" não conheço nenhuma função no sql que possa me retornar o intervalo de tempo entre uma linha e outra Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
luisgustavogomes Postado 23 de Setembro de 2021 Tópicos Que Criei: 5 Tópicos/Dia: 0.00 Meu Conteúdo: 484 Conteúdo/Dia: 0.21 Reputação: 136 Pontos/Conquistas: 3.226 Conteúdo Resolvido: 0 Dias Ganho: 64 Status: Offline Idade: 35 Dispositivo: Windows Denunciar Compartilhar Postado 23 de Setembro de 2021 @Paulo Lima, boa tarde! Temos como lhe ajudar, porém, precisamos saber qual é o banco e versão para o desenvolvimento da query... No aguardo. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
luisgustavogomes Postado 24 de Setembro de 2021 Tópicos Que Criei: 5 Tópicos/Dia: 0.00 Meu Conteúdo: 484 Conteúdo/Dia: 0.21 Reputação: 136 Pontos/Conquistas: 3.226 Conteúdo Resolvido: 0 Dias Ganho: 64 Status: Offline Idade: 35 Dispositivo: Windows Denunciar Compartilhar Postado 24 de Setembro de 2021 @Paulo Lima Segue um esboço da query... não finalizei, mas se estiver tudo correto*** é só sumarizar e efetuar os cálculos que desejar. *** Criei essa query com base em um processo que utilizávamos, sendo assim, podem ocorrer outras situações que não tenho conhecimento. USE CORPORERM GO SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; DECLARE @CODCOLIGADA INT = 1 DECLARE @CODLOCAL INT = 1 DECLARE @CODATENDIMENTO INT = 254489 DECLARE @DATAABERTURA DATETIME = '2018-01-01' ;WITH [STATUS] AS ( SELECT CODSTATUS, DESCRICAO FROM ( VALUES ('G','AGENDADO A RESPONDER') ,('E','AGENDADO RESPONDIDO') ,('T','AGUARDANDO TERCEIROS') ,('C','CANCELADO') ,('R','CONCLUÍDO A RESPONDER') ,('F','CONCLUÍDO CONFIRMADO') ,('O','CONCLUÍDO RESPONDIDO') ,('D','DESPERTADO') ,('A','EM ANDAMENTO') ) TAB (CODSTATUS,DESCRICAO) ) , TAB_ABERTURA AS ( SELECT 1 AS 'SEQ' ,AB.CODCOLIGADA ,AB.CODLOCAL ,AB.CODATENDIMENTO ,AB.ABERTURA AS 'DATA' ,'A' AS 'CODSTATUS' ,AB.CODATENDENTE FROM DBO.HATENDIMENTOBASE AB WHERE AB.CODCOLIGADA = @CODCOLIGADA AND AB.CODLOCAL = @CODLOCAL AND AB.ABERTURA > = @DATAABERTURA --AND AB.CODATENDIMENTO = @CODATENDIMENTO ) , TAB_STATUS AS ( SELECT ROW_NUMBER() OVER(PARTITION BY S.CODCOLIGADA,S.CODLOCAL,S.CODATENDIMENTO ORDER BY S.CODCOLIGADA,S.CODLOCAL,S.CODATENDIMENTO , S.[DATA]) + 1 AS 'SEQ' ,S.CODCOLIGADA ,S.CODLOCAL ,S.CODATENDIMENTO ,S.[DATA] ,S.CODSTATUS ,S.CODATENDENTE FROM TAB_ABERTURA A JOIN DBO.HSTATUSATEND S ON (A.CODCOLIGADA = S.CODCOLIGADA AND A.CODLOCAL = S.CODLOCAL AND A.CODATENDIMENTO = S.CODATENDIMENTO) ) , TAB_DADOS AS ( SELECT A.SEQ ,A.CODCOLIGADA ,A.CODLOCAL ,A.CODATENDIMENTO ,A.[DATA] ,A.CODSTATUS ,A.CODATENDENTE FROM TAB_ABERTURA A UNION SELECT S.SEQ ,S.CODCOLIGADA ,S.CODLOCAL ,S.CODATENDIMENTO ,S.[DATA] ,S.CODSTATUS ,S.CODATENDENTE FROM TAB_STATUS S ) , TAB_DADOSREF AS ( SELECT D.SEQ ,D.CODCOLIGADA ,D.CODLOCAL ,D.CODATENDIMENTO ,D.[DATA] ,CASE WHEN DF.DATAREF IS NULL AND D.CODSTATUS = 'A' THEN GETDATE() WHEN DF.DATAREF IS NULL AND D.CODSTATUS IN ( 'C' , 'F' , 'O', 'R') THEN D.[DATA] ELSE DF.DATAREF END AS 'DATAREF' ,D.CODSTATUS ,S.DESCRICAO ,D.CODATENDENTE FROM TAB_DADOS D LEFT JOIN [STATUS] S ON ( D.CODSTATUS = S.CODSTATUS ) OUTER APPLY ( SELECT DI.[DATA] AS 'DATAREF' FROM TAB_DADOS DI WHERE DI.CODCOLIGADA = D.CODCOLIGADA AND DI.CODLOCAL = D.CODLOCAL AND DI.CODATENDIMENTO = D.CODATENDIMENTO AND DI.SEQ = (D.SEQ + 1 ) ) DF ) SELECT DR.SEQ ,DR.CODCOLIGADA ,DR.CODLOCAL ,DR.CODATENDIMENTO ,DR.[DATA] ,DR.DATAREF ,DATEDIFF(N,DR.[DATA],DR.DATAREF) AS 'MINUTOS' ,DR.CODSTATUS ,DR.DESCRICAO ,DR.CODATENDENTE FROM TAB_DADOSREF DR ORDER BY 2,3,4,1 Espero ter ajudado um pouco. Abraços. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados
Participe da conversa
Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.