Estou tentando montar um gráfico que mostra o intervalo de tempo em horas trabalhadas pelo funcionário.
Segue abaixo o código:
SELECT
ORDSERV.TAG,
ORDSERV.DATPRO2,
(case when (maqpar - datpro2) < 0 then 'antecipado' end) antes_datap,
(case when (maqpar - datpro2) between 0 and 1 then '1 hora' end) umahora,
(case when (maqpar - datpro2) between 1 and 2 then '2 hora' end) duashoras,
(case when (maqpar - datpro2) > 2 then '3 hora' end) acima_duas
FROM ORDSERV
inner join ORDXFUN on ORDXFUN.CODORD=ORDSERV.CODORD
INNER JOIN TIPMANUT ON TIPMANUT.CODTIPMAN=ORDSERV.CODTIPMAN AND TIPMANUT.CODEMP=ORDSERV.CODEMP_2
INNER JOIN REGSERV ON REGSERV.CODEMP=ORDSERV.CODEMP AND REGSERV.CODORD=ORDSERV.CODORD
LEFT OUTER JOIN FILIAL ON FILIAL.CODFIL=ORDSERV.CODFIL AND FILIAL.CODEMP=ORDSERV.CODEMP_7
WHERE ORDSERV.DATPRO2 BETWEEN '01/11/2018' and '30/11/2018'
AND ORDSERV.STATORD = 'F'
AND ORDSERV.CODEMP=96
AND TIPMANUT.TAG NOT IN ('prev','insp', 'inst')
ORDER BY ORDSERV.CODCLI, ORDSERV.TAG
Pergunta
Leonardo JSantos
Boa tarde,
Estou tentando montar um gráfico que mostra o intervalo de tempo em horas trabalhadas pelo funcionário.
Segue abaixo o código:
SELECT
ORDSERV.TAG,
ORDSERV.DATPRO2,
(case when (maqpar - datpro2) < 0 then 'antecipado' end) antes_datap,
(case when (maqpar - datpro2) between 0 and 1 then '1 hora' end) umahora,
(case when (maqpar - datpro2) between 1 and 2 then '2 hora' end) duashoras,
(case when (maqpar - datpro2) > 2 then '3 hora' end) acima_duas
FROM ORDSERV
inner join ORDXFUN on ORDXFUN.CODORD=ORDSERV.CODORD
INNER JOIN TIPMANUT ON TIPMANUT.CODTIPMAN=ORDSERV.CODTIPMAN AND TIPMANUT.CODEMP=ORDSERV.CODEMP_2
INNER JOIN REGSERV ON REGSERV.CODEMP=ORDSERV.CODEMP AND REGSERV.CODORD=ORDSERV.CODORD
LEFT OUTER JOIN FILIAL ON FILIAL.CODFIL=ORDSERV.CODFIL AND FILIAL.CODEMP=ORDSERV.CODEMP_7
WHERE ORDSERV.DATPRO2 BETWEEN '01/11/2018' and '30/11/2018'
AND ORDSERV.STATORD = 'F'
AND ORDSERV.CODEMP=96
AND TIPMANUT.TAG NOT IN ('prev','insp', 'inst')
ORDER BY ORDSERV.CODCLI, ORDSERV.TAG
TAG DATPRO2 antes_datap umahora duashoras acima_duas
------- ---------- ----------- ------- --------- ----------
0023817 01/11/2018 1 hora
0023818 01/11/2018 1 hora
0024022 05/11/2018 antecipado
0024067 05/11/2018 antecipado
0024067 05/11/2018 antecipado
0024067 05/11/2018 antecipado
0024577 06/11/2018 antecipado
0024577 06/11/2018 antecipado
0024577 06/11/2018 antecipado
0024577 06/11/2018 antecipado
0024578 06/11/2018 antecipado
0024578 06/11/2018 antecipado
0024579 06/11/2018 antecipado
0024579 06/11/2018 antecipado
0024580 07/11/2018 antecipado
0024581 07/11/2018 antecipado
0024582 07/11/2018 antecipado
0024583 07/11/2018 antecipado
0024583 07/11/2018 antecipado
0024584 07/11/2018 antecipado
0024586 07/11/2018 antecipado
0024587 07/11/2018 antecipado
0024588 07/11/2018 1 hora
0024589 07/11/2018 antecipado
0024590 23/11/2018 antecipado
0024592 07/11/2018 1 hora
0024592 07/11/2018 1 hora
0024593 08/11/2018 antecipado
As horas antecipadas que são menor que 0 ou seja, a ordem de serviço foi fechada antes da data programada está correto.
Mas quando chega em 1 hora ele identifica alguns, e outros que são até 2 ou acima de 2 ele identifica como 1 hora também.
Se alguém puder me ajudar, desde já agradeço.
Editado por Leonardo JSantosLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.