Venho aqui pedir ajuda sobre o seguinte assunto:
Estou trabalhando com Access e a tabela em questão apresenta as operações realizadas (tempo de trabalho) no caso de ter interrupção, a interrupção tem a durabilidade desde o fim da operação até ao inicio da próxima operação.
Então sobre esta tabela, faço a seguinte pesquisa para saber quantas interrupções tenho e a que horas interromperam:
Dei o nome de “Inicio_interrupcoes”
SELECT dbo_opr.cod_gpt, dbo_opr.cod_pt, dbo_opr.un_pt, dbo_opr.data_ini, dbo_opr.data_fim, dbo_opr.cod_interrup, *
FROM dbo_opr
WHERE (((dbo_opr.cod_interrup) Is Not Null));
Este comando, executa corretamente, retornando todos os registos em que cod.interrup
seja não nulo.
Seguindo agora o código onde preciso milagrosamente de ajuda:
SELECT inicio_interrupcoes.cod_gpt, inicio_interrupcoes.cod_pt, inicio_interrupcoes.un_pt, inicio_interrupcoes.data_fim, inicio_interrupcoes.cod_interrup
FROM dbo_opr INNER JOIN inicio_interrupcoes ON (dbo_opr.cod_gpt = inicio_interrupcoes.cod_gpt) AND (dbo_opr.cod_pt = inicio_interrupcoes.cod_pt)
GROUP BY inicio_interrupcoes.cod_gpt, inicio_interrupcoes.cod_pt, inicio_interrupcoes.un_pt, inicio_interrupcoes.data_fim, inicio_interrupcoes.cod_interrup, dbo_opr.data_ini
HAVING (((dbo_opr.data_ini)>[inicio_interrupcoes].[data_fim]));
Passando agora a explicar o que preciso:
Na primeira consulta “Inicio_Interrupcoes” pesquiso todas os registos que contenham o campo cod_interrup
preenchido.
Na segunda consulta respeitando os campos cod_gpt
e cod_pt
pretendo obter a data de inicio da próxima operação que nesta consulta representa o fim da interrupção.
Segue exemplo básico:
considerem linha 2 e linha 3 da imagem:
Linha 2 representa produção -> Inicio = 10/01/2019 08:21:13
Fim = 10/01/2019 12:54:30
Como o registo tem Cod_interrup
considero que 10/01/2019 12:54:30
representa o inicio da interrupção e o próximo inicio neste caso 10/01/2019 14:04:53
será o fim da interrupção e inicio da Produção.
Alguém me pode dar uma força neste assunto?