Hallo,
bin neu hier und habe nicht viel Erfahrung mit MySQL.
Ich möchte für die Arbeit ein kleines Kontrollprogramm schreiben, welches mir die Arbeit und die Übersicht ungemein erleichtern könnte. Bisher habe ich alles in eine Excel-Tabelle geschrieben.
Es geht hier um die Schichtzeiten und die Ruhepausen unserer LKW-Flotte.
Ich habe also in einer Tabelle, die LKW-Kennzeichen mit einer ID eingetragen und in einer zweiten Tabelle die Schichtzeiten, mit ID, LKW_ID, Beginn und Ende.
Die Ausgabe der Schichtzeiten war noch einfach. Mit der Ausgabe der Ruhepausen haperts ein wenig, da ich die Ende-Zeit aus der jeweiligen Zeile (passend zur LKW_ID) davor auslesen muss.
Ich habe einen Query gefunden und ihn für mich angepasst.
SELECT s1.lkw_id, s1.beginn, s1.ende, TIMEDIFF(s2.beginn, s1.ende)
FROM schichten s1
JOIN schichten s2
ON ( s2.schicht_id = (
SELECT MIN(schicht_id)
FROM schichten si
WHERE si.schicht_id > s1.schicht_id )
);
Das funktioniert auch soweit, solange nur eine LKW_ID in der Tabelle Schichten vorhanden ist. Sobald ein zweiter LKW eingetragen wird, sind einige Werte nicht mehr so passend.
Es hat sicherlich damit zu tun, dass ich ja die Ende-Zeit passend zur richtigen LKW_ID aus der vorherigen Zeile auslesen muss, nur bekomme ich das in den Query nicht eingefügt.
Ich bin für jede Hilfe dankbar.
bin neu hier und habe nicht viel Erfahrung mit MySQL.
Ich möchte für die Arbeit ein kleines Kontrollprogramm schreiben, welches mir die Arbeit und die Übersicht ungemein erleichtern könnte. Bisher habe ich alles in eine Excel-Tabelle geschrieben.
Es geht hier um die Schichtzeiten und die Ruhepausen unserer LKW-Flotte.
Ich habe also in einer Tabelle, die LKW-Kennzeichen mit einer ID eingetragen und in einer zweiten Tabelle die Schichtzeiten, mit ID, LKW_ID, Beginn und Ende.
Die Ausgabe der Schichtzeiten war noch einfach. Mit der Ausgabe der Ruhepausen haperts ein wenig, da ich die Ende-Zeit aus der jeweiligen Zeile (passend zur LKW_ID) davor auslesen muss.
Ich habe einen Query gefunden und ihn für mich angepasst.
SELECT s1.lkw_id, s1.beginn, s1.ende, TIMEDIFF(s2.beginn, s1.ende)
FROM schichten s1
JOIN schichten s2
ON ( s2.schicht_id = (
SELECT MIN(schicht_id)
FROM schichten si
WHERE si.schicht_id > s1.schicht_id )
);
Das funktioniert auch soweit, solange nur eine LKW_ID in der Tabelle Schichten vorhanden ist. Sobald ein zweiter LKW eingetragen wird, sind einige Werte nicht mehr so passend.
Es hat sicherlich damit zu tun, dass ich ja die Ende-Zeit passend zur richtigen LKW_ID aus der vorherigen Zeile auslesen muss, nur bekomme ich das in den Query nicht eingefügt.
Ich bin für jede Hilfe dankbar.