Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JoaoVM

Query com Registo de Duas Linhas Especificas

Recommended Posts

Boas Pessoal,

Tenho uma duvida no que trata a uma consulta em MYSQL que tem 2 campos, penso que tenho que fazer com sub-consultas mas não estou a conseguir, dai pedir a vossa ajuda.
Esta é a minha tabela onde quero sacar os dados, http://prntscr.com/217288.
O que quero é a diferença de tempo entre a entrada do Colaborador e a saída do Colaborador, cada registo é um evento de E=entrada e S=saída.
De referir que apenas conta o Colaborador Joao Martins, o que está em branco é apenas devido a confidencialidade dos dados, podem esquecer..
Para isso tentei algo do género:

SELECT timediff('hora_saida', 'hora_entrada') as Total from transacoes_bmw where rfid=123456789 and linha=126 and evento='E' and evento='S' and data=timestamp(current_date());

 


Mas não consigo saber através desta minha query de onde vem o hora_entrada, se do evento de E ou S.
Penso que o problema se resolve com sub-consultas para encontrar o registo de cada uma, mas não estou a ver como fazer...
Alguém me ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem de instanciar 2 vezes a tabela

 

 

select *
from
(SELECT hora_saida
 from transacoes_bmw 
 where rfid=123456789 and linha=126 and evento='E') ENTRADA,
(SELECT hora_entrada
 from transacoes_bmw 
 where rfid=123456789 and linha=126 and evento='S') SAIDA

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, impecável ;)

 

SELECT TIMEDIFF(hora_saida, hora_entrada) AS TOTAL
FROM
(SELECT hora_saida FROM transacoes_bmw 
WHERE           rfid='1234567890' AND
		linha='126' AND
		evento='S'AND
		DATA=TIMESTAMP(CURRENT_DATE())) SAIDA,
                
(SELECT hora_entrada FROM transacoes_bmw 
WHERE           rfid='1234567890' AND
		linha='126' AND
		evento='E'AND
		DATA=TIMESTAMP(CURRENT_DATE())) ENTRADA;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.