Jump to content
Fórum Script Brasil
  • 0

Calcular Horas de atendimento para resultados específicos


Question

Boa tarde,

Eu tenho um código SQL onde eu estou marcando com 1,2 e 3 determinando a quantidade de tempo entre a O.S.s , mas gostaria de adicionar a soma dessas marcações em seus respectivos campos . Tipo, Quantidade até 1 hora = 9 , 2 horas = 2 e superior a 2 horas = 4. Alguém poderia me ajudar? Desde já agradeço.

 

 

 
 SELECT    
          
        ORDSERV.TAG AS'OS',
         ORDSERV.DATPRO2,
         ORDSERV.MAQPAR,
         TIPMANUT.DESCRICAO,  
 
       SUM(DATEDIFF(SS,(CASE WHEN  ORDSERV.DATPRO < ORDSERV.MAQPAR
                       THEN  DATPRO
                       ELSE  ORDSERV.DATPRO
                       END),
                       (CASE WHEN  ORDSERV.DATPRO > ORDSERV.MAQPAR
                       THEN  MAQPAR
                       ELSE  ORDSERV.MAQPAR
                       END)))/3600.0  'H_ATEND', 
                       (CASE 
                                    WHEN SUM(DATEDIFF(SS,(CASE WHEN  ORDSERV.DATPRO < ORDSERV.MAQPAR
                       THEN  DATPRO
                       ELSE  ORDSERV.DATPRO
                       END),
                       (CASE WHEN  ORDSERV.DATPRO > ORDSERV.MAQPAR
                       THEN  MAQPAR
                       ELSE  ORDSERV.MAQPAR
                       END)))/3600.0 < 60  THEN 1 ELSE 0 END)'1HORA',
                                  (CASE  WHEN SUM(DATEDIFF(SS,(CASE WHEN  ORDSERV.DATPRO < ORDSERV.MAQPAR
                       THEN  DATPRO
                       ELSE  ORDSERV.DATPRO
                       END),
                       (CASE WHEN  ORDSERV.DATPRO > ORDSERV.MAQPAR
                       THEN  MAQPAR
                       ELSE  ORDSERV.MAQPAR
                       END)))/3600.0 > 60 AND
                       SUM(DATEDIFF(SS,(CASE WHEN  ORDSERV.DATPRO < ORDSERV.MAQPAR
                       THEN  DATPRO
                       ELSE  ORDSERV.DATPRO
                       END),
                       (CASE WHEN  ORDSERV.DATPRO > ORDSERV.MAQPAR
                       THEN  MAQPAR
                       ELSE  ORDSERV.MAQPAR
                       END)))/3600.0 < 120 THEN 2 ELSE 0 END)'2HORAS',
                                 (CASE   WHEN SUM(DATEDIFF(SS,(CASE WHEN  ORDSERV.DATPRO < ORDSERV.MAQPAR
                       THEN  DATPRO
                       ELSE  ORDSERV.DATPRO
                       END),
                       (CASE WHEN  ORDSERV.DATPRO > ORDSERV.MAQPAR
                       THEN  MAQPAR
                       ELSE  ORDSERV.MAQPAR
                       END)))/3600.0 > 120 THEN 3 
                                    ELSE 0 END) 'SUPERIOR_2HORAS'
                                  
          
         
     FROM ORDSERV
     INNER JOIN TIPMANUT ON ORDSERV.CODEMP_2=TIPMANUT.CODEMP AND ORDSERV.CODTIPMAN=TIPMANUT.CODTIPMAN 
                        
     WHERE ORDSERV.DATPRO2 BETWEEN '12/05/2016' and '23/05/2016' 
       AND ORDSERV.CODEMP=76
       AND TIPMANUT.TAG IN ('CORR','CHAM')         
     GROUP BY ORDSERV.TAG,ORDSERV.DATPRO2,ORDSERV.MAQPAR,TIPMANUT.DESCRICAO
     ORDER BY 1,2
 
_____________________________________________________________________________________________________________
 
Resultado:
 
    OS       DATPRO2        MAQPAR                 DESCRICAO     H_ATEND    1HORA     2HORAS     SUPERIOR_2HORAS      
 -------       ----------     -----------------------          -----------------     -------------   ----------  ---------------   -----------------------------
0001887  12/05/2016  12/05/2016 14:30:00     CORRETIVA    5,663333          1                    0                0  
0001888  12/05/2016  25/05/2016 11:00:00     CORRETIVA  314,086666         0                   0                3  
0001889  12/05/2016  12/05/2016 12:00:00     CORRETIVA    2,296666           1                   0                0  
0001890  12/05/2016  16/05/2016 08:00:00     CORRETIVA   87,898611           0                   2                0  
0001891  12/05/2016  18/05/2016 16:00:00     CORRETIVA  143,879166          0                   0                3  
0001892  13/05/2016  13/05/2016 09:00:00     CORRETIVA    0,609722           1                    0                0  
0001893  13/05/2016  04/06/2016 08:00:00     CORRETIVA  527,594444         0                    0                3  
0001894  13/05/2016  13/05/2016 07:53:00     CORRETIVA   -0,539166           1                    0                0  
0001895  13/05/2016  16/05/2016 15:40:00     CORRETIVA   79,226388           0                    2                0  
0001896  13/05/2016  23/05/2016 16:38:00     CORRETIVA  248,162222          0                    0                3  
0001897  13/05/2016  13/05/2016 08:02:00     CORRETIVA   -0,452222           1                     0                0  
0001898  13/05/2016  13/05/2016 08:40:00     CORRETIVA       0,115              1                     0                0  
0001899  13/05/2016  12/05/2016 16:00:00     CORRETIVA  -16,570833          1                     0                0  
0001900  13/05/2016  13/05/2016 12:00:00     CORRETIVA   -2,959444           1                     0                0  
0001901  13/05/2016  13/05/2016 16:48:00      CORRETIVA    1,815277          1                     0                0 
Link to post
Share on other sites

1 answer to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      148847
    • Total Posts
      644845
×
×
  • Create New...