JoaoVM 0 Denunciar post Postado Novembro 1, 2013 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
Motta 645 Denunciar post Postado Novembro 1, 2013 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
JoaoVM 0 Denunciar post Postado Novembro 1, 2013 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