[firebase-br] Consulta com tempos.

ti em telassantoantonio.com.br ti em telassantoantonio.com.br
Ter Abr 2 08:45:50 -03 2019


Bom dia a todos, esta é minha primeira tentativa de utilizar a lista então se estiver fazendo algo errado, me perdoem.
Minha dúvida é a seguinte, tenho a base do sistema que grava o tempo inicial, final e as paradas de cada orem de serviço da produção, então fiz um sql para poder calcular o tempo de cada ordem através de relatórios, mas no campo de tempos por mt² acaba arredondando os minutos, tanto para cima quanto para baixo, trazendo sempre o minuto cheio EX: 00:01:00 ou 00:03:00. 
Reparem também que estou utilizando o campo DATEADD ( minute to time '00:00:00') para formatar os campos em exibição de minutos e segundos. Aceito qualquer sugestão para melhorias, desde já deixo meu agradecimento.
SELECT PRODUTO, QTD_PRODUZIDA, (TEMPOGERAL/60) AS Horas_TOTAL,
DATEADD(TEMPOPARADO MINUTE TO TIME '00:00') AS TEMPO_PARADO,
DATEADD(TEMPOPRODUCAO MINUTE TO TIME '00:00') AS TEMPO_PRODUCAO,
DATEADD((tempoproducao/QTD_PRODUZIDA) MINUTE TO TIME '00:00:00') as TEMPOS_POR_MT2,
DATEADD(tempoproducao MINUTE TO TIME '00:00:00') AS TEMPOPRODUCAO

FROM (

select E.NOME AS PRODUTO, SUM(ID.QTD) AS QTD_PRODUZIDA,

SUM(cast(
(cast((ip.data_final ||' '|| ip.hora_final)as timestamp)-
 CAST((ip.data_inicial || ' ' || ip.hora_inicial) as timestamp))
  *24*60 as integer))AS TEMPOGERAL,

sum(cast((CAST((IDP.DATA_RETORNO || ' ' || IDP.HORA_RETORNO) AS TIMESTAMP)-
CAST((IDP.DATA || ' ' || IDP.HORA )AS TIMESTAMP))*24*60 as integer)) as TempoParado,

SUM((cast((ip.data_final ||' '|| ip.hora_final)as timestamp)-
 CAST((ip.data_inicial || ' ' || ip.hora_inicial) as timestamp)) -
 (CAST((IDP.DATA_RETORNO || ' ' || IDP.HORA_RETORNO) AS TIMESTAMP)-
CAST((IDP.DATA || ' ' || IDP.HORA )AS TIMESTAMP)) )*24*60 AS TEMPOPRODUCAO

FROM IND_PRODUCAO IP
INNER JOIN ESTOQUE E ON IP.PRODUTO_FINAL = E.CODIGO
LEFT JOIN GRUPOS G ON E.SUB_GRUPO = G.CODIGO
INNER JOIN IND_PRODUCAO_ORDENS IPO ON IP.CODIGO = IPO.CODIGO_PRO
INNER JOIN IND_ORDEM ID ON IPO.CODIGO_ORDEM = ID.CODIGO
LEFT JOIN IND_DET_PROGRAMACAO IDP on IP.CODIGO = IDP.PROGRAMACAO

WHERE
E.TIPO = 'ARAME 12' AND
IP.DATA_INICIAL >= '03/15/2019' AND
IP.DATA_FINAL



Mais detalhes sobre a lista de discussão lista