none
Duração de serviço RRS feed

  • Pergunta

  • Boa tarde!

    Pessoal, estou com um problema:

    Tenho uma tabela com as seguintes informações:

     

     

    DATA_HORA_GPS TECNICO ID_SERVICO
    09/07/2011 10:29 23463 SRV-11325104
    09/07/2011 10:31 23463 SRV-11323391
    09/07/2011 10:33 23463 SRV-11323391
    09/07/2011 10:55 23463 SRV-11323391
    09/07/2011 10:57 23463 SRV-11329410
    09/07/2011 11:14 23463 SRV-11325189
    09/07/2011 11:14 23463 SRV-11325189
    09/07/2011 11:14 23463 SRV-11329410
    09/07/2011 11:15 23463 SRV-11322525
    09/07/2011 11:29 23463 SRV-11322525
    09/07/2011 11:29 23463 SRV-11322525
    09/07/2011 11:29 23463 SRV-11322525
    09/07/2011 11:30 23463 SRV-11325104
    09/07/2011 11:36 23463 SRV-11325104
    09/07/2011 14:38 23463 SRV-11329410
    09/07/2011 14:40 23463 SRV-11325189
    09/07/2011 14:51 23463 SRV-11325189
    09/07/2011 14:53 23463 SRV-11325189
    09/07/2011 14:55 23463 SRV-11325189
    09/07/2011 14:55 23463 SRV-11329410
    09/07/2011 15:17 23463 SRV-11325189
    09/07/2011 15:18 23463 SRV-11322525
    09/07/2011 15:38 23463 SRV-11322525
    09/07/2011 15:40 23463 SRV-11322525
    09/07/2011 15:42 23463 SRV-11322525
    09/07/2011 15:44 23463 SRV-11322525
    09/07/2011 15:46 23463 SRV-11322525
    09/07/2011 15:48 23463 SRV-11322525
    09/07/2011 15:50 23463 SRV-11322525
    09/07/2011 15:52 23463 SRV-11322525
    09/07/2011 15:54 23463 SRV-11322525
    09/07/2011 15:56 23463 SRV-11329410
    09/07/2011 15:57 23463 SRV-11325189
    09/07/2011 15:58 23463 SRV-11329410
    09/07/2011 15:58 23463 SRV-11329410
    09/07/2011 15:58 23463 SRV-11329410
    09/07/2011 16:00 23463 SRV-11329410

     

    Com base nesses dados preciso informar o tempo de permanencia de um técnico
    em um determinado serviço.

    Exemplo:

    ID_SERVICO = SRV-11322525

    permanencia: 09/07/2011 11:15 até 09/07/11 11:29 = 00:14 minutos
                        09/07/2011 15:18 até 09/07/11 15:54 = 00:36 minutos
       
    Resultado:
    DATA            TECNICO      ID_SERVICO         TEMPO_TOTAL
    09/07/2011     23463         SRV-11322525      00:50


    Não é possivel utilizar o min e o max porque um tecnico pode iniciar um serviço as 11 horas, em seguida se deslocar para outro serviço, e retornar no serviço anterior no final do dia.

     


    segunda-feira, 25 de julho de 2011 18:45

Respostas

Todas as Respostas

  • D.Moreira,

     

    Acredito que esta sua tabela precise de mais informações, por exemplo um campo que defina por sigla quando o funcionario Inicia, Pausa, Retoma e Finaliza o atendimento. Porque a partir do seu exemplo não dá para definir quando os status do atendimento.

     

    Recomendo rever o conceito do seu modelo de dados utilizando o conceito das Formas normais e boas praticas.

     

     

    Exemplo:

    create table LabDB.dbo.tblOsGpsFunc(DATA_HORA_GPS smalldatetime, TECNICO int, ID_SERVICO char(12),TipoLog char(1))



    Se esta informação ajudou em sua dúvida, recomende propondo como resposta.

    Atenciosamente,
    _______________________
    Gilson Dias,
    MCTS SQL Server™ 2005, 2008.

    segunda-feira, 25 de julho de 2011 21:12
  • Boa Tarde,

    De fato falta mais informações. O primeiro registro é o início do serviço ? E se a quantidade de registros for ímpar ? O que significa ? Começou, parou e começou (mas não terminou) ? Tenho um cálculo parecido. Maiores detalhes em:

    O cálculo do uptime, do downtime e da disponibilidade em T-SQL
    http://gustavomaiaaguiar.wordpress.com/2010/02/19/o-calculo-do-uptime-do-downtime-e-da-disponibilidade-em-t-sql/

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    • Marcado como Resposta D.Moreira quarta-feira, 27 de julho de 2011 12:50
    segunda-feira, 25 de julho de 2011 21:18
  • Gustavo Maia Aguiar

    Consegui resolver o problema com base no exemplo do calculo uptime/downtime.

    Obrigado!
    quarta-feira, 27 de julho de 2011 12:50