Ich habe dieses Problem, ich habe Tabelle XYZ mit diesen Werten:MySql: Differenz der Zeiten zwischen engstenen Reihen
product_id, user_name, event_type, event_time
ABCD123, user1, REPAIR, 2017.01.16 14:51:28
ABCD123, user1 INSTANDSETZUNGS DONE 2017-01-16 15:51:28
ABCD123, user1 INSTANDSETZUNGS 2017-01-16 16:51:28
ABCD123, Benutzer1, REPARATUR FERTIG, 2017-01-16 18:51:28
Wie wäre es möglich, den Zeitunterschied zwischen der ersten REPAIR DONE und der ersten REPAIR FONE und der zweiten REPAIR DONE und der zweiten REPAIR zu erhalten? Ich versuchte dies:
select a.product_id, a.user_name, b.event_time as start_time, a.event_time as end_time, FORMAT((TIMESTAMPDIFF(SECOND, b.event_time, a.event_time)/3600),2) as difference
FROM XYZ a
join XYZ b
ON a.product_id = b.product_id and a.user_name = b.user_name and a.event_type = 'REPAIR DONE' and b.event_type = 'REPAIR'
group by a.product_id, a.user_name
order by a.event_time asc
aber aus irgendeinem Grund das Ergebnis ist folgendes:
ABCD123, user1, differenz 1 Stunde
ABCD123, user1, differenz 4 STUNDEN
korrekt wäre, :
ABCD123, user1, differenz 1 STUNDE
ABCD123, benutzer1, differenz 2 STUNDET
Mit anderen Worten, in der zweiten Reihe I Ergebnis der Differenz zwischen dem ersten Reparatur erhalten und zweiter Reparatur DONE DONE statt zweite Reparatur und zweite Reparatur.
Kann mir bitte jemand einen Rat geben?
Es tut mir leid, ich konnte Ihre Lösung nicht zum Laufen bringen, aber es könnte ein Problem auf meiner Seite sein. – Raymond
können Sie eine Tabelle mit einigen Beispieldaten auf http://sqlfiddle.com/ die ich werde es überprüfen –
Hallo, schickte ich Ihnen Beispieldaten per E-Mail, schien sqlfiddle für mich etwas verwirrend auf den ersten Blick. Es tut mir leid. Danke für deinen Versuch. – Raymond