[firebase-br] Consulta com tempos.

Carlos H. Cantu listas em warmboot.com.br
Ter Abr 2 09:47:41 -03 2019


Quais os tipos dos campos envolvidos?

Sem a metadata fica dificil falar algo, mas tente o seguinte:

DATEADD((tempoproducao/QTD_PRODUZIDA/1.0000) MINUTE TO TIME '00:00:00') as TEMPOS_POR_MT2,

[]s
Carlos H. Cantu
eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br

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

ttcb> FROM (

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

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

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

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

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

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





Mais detalhes sobre a lista de discussão lista