Tempo real gasto no chamado

Olá galera!

Fiz uma simples Query MySQL para verificar o tempo real gasto desde a abertura do chamado até seu fechamento no GLPI.
Essa query foi feita com base nas principais colunas para gerar informações a respeito do chamado (ID do chamado, Técnico, Aberto em?, Fechado em? e Tempo Gasto [diferença]).

-- Query : Thiago Passamani
-- GLPI 0.80
SELECT
	Chamados.id AS 'Chamado',
	Tecnicos.realname AS 'Tecnico',
	Chamados.date AS 'Aberto em?',
	Chamados.closedate AS 'Fechado em?',
	TIMEDIFF(Chamados.closedate, Chamados.date) as 'Tempo gasto'
		FROM glpi_tickets AS Chamados
		INNER JOIN glpi_tickets_users AS Tickets_Users ON(Chamados.id = Tickets_Users.tickets_id)
		INNER JOIN glpi_users as Tecnicos ON(Tickets_Users.users_id = Tecnicos.id)
		WHERE Chamados.status = 'closed'
		AND Tickets_Users.type = '2';

Resultado:

[ ATUALIZAÇÃO 1 ]

-- Query : Thiago Passamani
-- GLPI 0.78.3 / 0.78.4 / 0.78.5
SELECT
Chamados.id AS 'Chamado',
Tecnicos.realname AS 'Tecnico',
Chamados.date AS 'Aberto em?',
Chamados.closedate AS 'Fechado em?',
TIMEDIFF(Chamados.closedate, Chamados.date) as 'Tempo gasto'
FROM glpi_tickets AS Chamados
INNER JOIN glpi_users as Tecnicos ON(Chamados.users_id_assign = Tecnicos.id)
        WHERE Chamados.status = 'closed';

[ ATUALIZAÇÃO 2 ]

-- Versão 0.72.4
SELECT
    Chamados.id AS 'Chamado',
    Tecnicos.realname AS 'Tecnico',
    Chamados.date AS 'Aberto em?',
    Chamados.closedate AS 'Fechado em?',
    TIMEDIFF(Chamados.closedate, Chamados.date) as 'Tempo gasto'
        FROM glpi_tracking AS Chamados
        INNER JOIN glpi_users as Tecnicos ON(Chamados.assign = Tecnicos.id)
        WHERE Chamados.status in('old_done','old_nordone');

[ ATUALIZAÇÃO 3 ]

-- Versão 0.90.x
SELECT
	Chamados.id AS 'Chamado',
	Tecnicos.name AS 'Login',
	CONCAT(Tecnicos.firstname, ' ', Tecnicos.realname) AS 'Tecnico',  
	Chamados.date AS 'Aberto em?',
	Chamados.closedate AS 'Fechado em?',
	TIMEDIFF(Chamados.closedate, Chamados.date) as 'Tempo gasto'
		FROM glpi_tickets AS Chamados
		INNER JOIN glpi_tickets_users AS Tickets_Users ON(Chamados.id = Tickets_Users.tickets_id)
		INNER JOIN glpi_users as Tecnicos ON(Tickets_Users.users_id = Tecnicos.id)
		WHERE Chamados.status = '6'
		AND Tickets_Users.type = '2';

Espero que essa query ajude no desenvolvimento de relatórios e se desenvolverem, postem aqui.

 

Para dúvidas, críticas, sugestões ou reclamações. Por favor comentem!

Até a próxima…

37 respostas para “Tempo real gasto no chamado”

  1. SELECT
    Chamados.id AS ‘Chamado’,
    DATE_FORMAT(Chamados.date, ‘%d/%m/%Y’) AS ‘Data Abertura’,
    TIME_FORMAT(Chamados.date, ‘%h:%i:%s’) AS ‘Hora Abertura’,
    DATE_FORMAT(Chamados.closedate, ‘%d/%m/%Y’) AS ‘Data Fechamento’,
    TIME_FORMAT(Chamados.closedate, ‘%h:%i:%s’) AS ‘Hora Fechamento’,
    SEC_TO_TIME(Chamados.takeintoaccount_delay_stat) AS ‘Tempo Atribuido’,
    SEC_TO_TIME(Chamados.waiting_duration) AS ‘Tempo Pendente’,
    TIMEDIFF(Chamados.closedate, Chamados.date) as ‘Tempo Total’,
    ((TIMEDIFF(Chamados.closedate, Chamados.date)) – (SEC_TO_TIME(Chamados.waiting_duration))) as ‘TOTAL’
    FROM glpi_tickets AS Chamados
    WHERE Chamados.date > ‘2017-04-01 00:00:00’ AND Chamados.date < '2017-04-30 23:59:59' and Chamados.status = '6';

    No cálculo de tempo real (total – pendente) tem como formatar para 00:00:00 ?????

  2. Thiago, bom dia tudo bem?
    Gostaria de tirar um consulta que me de o número de chamados atendidos nos últimos 6 meses ,entre 18hs e 19 hs, como ficaria?

    Obrigado!!

  3. Boa tarde Thiago,

    Como faço para cadastrar os dias úteis para contar na abertura/fechamento dos chamados.
    Quero que sábado, domingo e feriado não conte no meu Dashboard, pois emito relatórios para Gerência através dele.

  4. E no caso de somar todas as horas de cada técnico:

    SELECT
    Chamados.id AS ‘Chamado’,
    Tecnicos.name AS ‘Login’,
    CONCAT(Tecnicos.firstname, ‘ ‘, Tecnicos.realname) AS ‘Tecnico’,
    Chamados.date AS ‘Aberto em?’,
    Chamados.closedate AS ‘Fechado em?’,
    TIME_FORMAT(SEC_TO_TIME(sum(TIME_TO_SEC(TIMEDIFF( Chamados.closedate, Chamados.date)))), “%H:%i”) AS ‘Tempo Gasto’
    FROM glpi_tickets AS Chamados
    INNER JOIN glpi_tickets_users AS Tickets_Users ON(Chamados.id = Tickets_Users.tickets_id)
    INNER JOIN glpi_users as Tecnicos ON(Tickets_Users.users_id = Tecnicos.id)
    WHERE Chamados.status = ‘6’ AND (date BETWEEN ‘2016-10-01 00:00:00’ AND ‘2016-10-20 23:59:59’)
    AND Tickets_Users.type = ‘2’
    GROUP BY Tecnico;

    Uma única linha para cada técnico já com o tempo total

  5. Atualização para versão 0.85.3

    SELECT
    Chamados.id AS ‘Chamado’,
    Tecnicos.realname AS ‘Tecnico’,
    Chamados.date AS ‘Aberto em?’,
    Chamados.closedate AS ‘Fechado em?’,
    TIMEDIFF(Chamados.closedate, Chamados.date) as ‘Tempo gasto’
    FROM glpi_tickets AS Chamados
    INNER JOIN glpi_tickets_users AS Tickets_Users ON(Chamados.id = Tickets_Users.tickets_id)
    INNER JOIN glpi_users as Tecnicos ON(Tickets_Users.users_id = Tecnicos.id)
    WHERE Chamados.status = ‘6’
    AND Tickets_Users.type = ‘2’;

  6. Thiago,
    Boa tarde!

    Uso a versão 85.2, e não entendo muito de banco de dados, você acha que é possível coletar apenas o tempo em atribuição? estamos prestando serviço a uma empresa que nos paga pelo tempo em que passamos com o chamado em atribuição, porém não encontrei um relatório que mostre isso, encontrei apenas diretamente no chamado, na guia Estatísticas. Onde posso criar esse relatório?

    Marcio Santana

  7. Customizar como?
    Qual ferramenta eu posso fazer isso?
    Aponta um norte pra mim para que eu possa encontrar uma solução.

    obrigado.

  8. Bom dia Thiago,

    Como que faço para adicionar um relatório desse no glpi?
    Eu preciso de alguns relatórios mais específicos e não sei como criar estes relatórios no glpi. Você poderia me ajudar?

    Obrigado.

  9. Boa tarde!

    Preciso de uma ajudar na seguinte questão, um cliente quer abrir chamados onde dependendo do chamado ele tem niveis para controle de tempo, tipo, após o chamado aberto tenho x horas para dar um solução e Y horas para solucionar e z horas para fechar o chamado solucionado, adicionei as SLA e ele me da o tempo final do chamado, ou seja, quando vai fechar, contudo gostaria de saber se tem como eu fazer o GLPI contar em tempo real o tempo decorrido, ou seja, minuto transcorrido até o momento da visualição atual..

  10. Thiago,

    proderia me auxiliar na seguinte questão: Preciso gerar um relatorio onde eu mostre quais os tipos de chamados (incidente e solicitação) que mais são abertos e quais categorias que tiveram chamados mais abertos, procurei alguns plugins para isso, porém só tem relatorios relativos a hardware e não a chamados, o que vc me sugere?

  11. Thiago,

    Preciso descobrir o tempo gasto levando em consideração os dias úteis. Tipo… Um chamado que foi aberto às 17h do dia 10 e foi solucionado e fechado no dia 11 às 10h teve a duração de 3h. Entende?

    Vocês saber se existe esta informação no Banco de Dados do GLPI ou quais tabelas devo usar para fazer esta consulta. Pode me ajudar?

    Aguardo sua resposta o mais breve possível.

    Respeitosamente,

    Rodrigo Leal

  12. @Thiago Passamani: Então, até ai eu entendi, por isso comentei que acho q deve ter alguma coisa errada, pois se vc ir em chamados la no GLPI e mandar ele mostrar os chamados por periodo ele me mostra 19 chamados com o status de “FECHADO” quando faço pela query ele ta me mostrando apenas 3 chamados com o tempo MUITO elevado, será porque estou executando ele diretamente no SQL do phpmyadmin? qual ferramenta é essa da sua visualização que vc mostra no print…
    Olha o resultado do periodo do mes 09

    Chamado Tecnico Aberto em? Fechado em? Tempo gasto
    97 Marcos Augusto Schimidt 2011-07-27 10:41:00 2011-09-15 10:56:11 838:59:59
    152 Marcos Augusto Schimidt 2011-08-22 10:30:00 2011-09-14 08:48:57 550:18:57
    198 Marcos Augusto Schimidt 2011-09-23 16:48:00 2011-09-26 10:30:48 65:42:48

  13. Entendi, mas acho que ela esta se perdendo em algum lugar, pois nao traz todos os chamados do mês, e com isso infelizmente ainda caio no problema de ter q lançar manualmente, ou melhor, fazer formula no excel…mas de qualquer forma valeu ai Thiago..

  14. @Marcos nessa query faço a verificação usando a data de abertura e data de fechamento, claro que isso é bem básico. Teria que aprofundar mais essa query para pegar o tempo que realmente foi atendido.

  15. Hmm, saquei, entao é por isso que ele gerou apenas no email acima que te mandei esses 4 eventos no periodo de 1 mes?? sendo que no correio eu tenho como falei 19 chamados nesse periodo..

  16. Thiago, me desculpa, mas funcionou sim, o problema foi no control c + control V só que o resultado esta furado, acho q dá pra entender um pouco abaixo.
    Tem datas do dia 27/07 e segundo o relatorio tirado dentro do proprio GLPI eu tive no mes de setembro um total de 19 chamados, e porque não uso o relatório de lá? porque ele não me mostra o campo “Duração Total” fica sempre como 0 Segundo’s

    Obrigado.

    Chamado Tecnico Aberto em? Fechado em? Tempo gasto
    97 Marcos Augusto Schimidt 2011-07-27 10:41:00 2011-09-15 10:56:11 838:59:59
    152 Marcos Augusto Schimidt 2011-08-22 10:30:00 2011-09-14 08:48:57 550:18:57
    198 Marcos Augusto Schimidt 2011-09-23 16:48:00 2011-09-26 10:30:48 65:42:48

  17. Thiago, valeu o retorno, mas ele retornou um erro..

    consulta SQL:

    SET @DataIni = ’2011 -09 – 01′;

    Mensagens do MySQL : Documentação
    #1054 – Unknown column ‘’2011’ in ‘field list’

  18. @Marcos sim é possivel

    SET @DataIni = ‘2011-09-01’;
    SET @DataFim = ‘2011-09-31’;
    SELECT
    t1.id AS ‘Chamado’,
    u1.realname AS ‘Tecnico’,
    t1.date AS ‘Aberto em?’,
    t1.closedate AS ‘Fechado em?’,
    TIMEDIFF(t1.closedate, t1.date) as ‘Tempo gasto’
    FROM glpi_tickets t1
    INNER JOIN glpi_tickets_users tu1 ON(t1.id = tu1.tickets_id)
    INNER JOIN glpi_users as u1 ON(tu1.users_id = u1.id)
    WHERE t1.status = ‘closed’
    AND t1.closedate >= @DataIni
    AND t1.closedate < @DataFim AND tu1.type = '2';

  19. Valeu Thiago…

    Obrigado…funcionou, eu queria colocar por periodo de datas, tipo quantidade de chamados atendidos no perio de 01/09/11 a 31/09/11 é possivel??

    Valeu..

  20. @Marcos a query é a mesma da 0.80

    SELECT
    	t1.id AS 'Chamado',
    	u1.realname AS 'Tecnico',
    	t1.date AS 'Aberto em?',
    	t1.closedate AS 'Fechado em?',
    	TIMEDIFF(t1.closedate, t1.date) as 'Tempo gasto'
    		FROM glpi_tickets t1
    		INNER JOIN glpi_tickets_users tu1 ON(t1.id = tu1.tickets_id)
    		INNER JOIN glpi_users as u1 ON(tu1.users_id = u1.id)
    		WHERE t1.status = 'closed'
    		AND tu1.type = '2';
    
  21. Falae thiago, isso iria salvar a minha vida, mas nao ta funcionando na versao GLPI 0.80.4

    vc pode passar o bizu pra gente?
    grande abraço

Os comentários estão desativados.