Hilfe bei SELECT

/dev/null

Neuer Benutzer
Beiträge
2
Hallo erstmal

Vereinfacht sehen die Tabellen wie folgt aus.

Machine (aktueller Stand Km/Stunden der Maschinen)
Index Id Name Km Stunden
1 1 Machine A 100 0
2 2 Machine B 90 0
3 3 Machine C 0 50
4 4 Machine D 0 20

Service (Zeitpunkt des Service, zusätzlich noch "Vorlaufzeit")
Index MaschinenIndex Text ServiceKm WarnKm ServiceStunden WarnStunden
1 1 Ölwechsel 101 10 0 0
2 1 Keilriemen 200 20 0 0
3 3 Ölwechsel 0 0 55 10
4 3 Lager 0 0 50 0
5 3 Filter 0 0 75 5
6 2 Filter 100 0 0 0
7 4 Filter 0 0 25 5

Kriterien für das sortierte Ergebnis.
Immer alle Services einer Maschinen im Block.
Zuerst Maschinen deren Servicezeitpunkt überschritten ist. (zB Km >= ServiceKm)
Danach Maschinen in der Vorlaufzeit (zB ServiceKm - WarnKm <= Km < ServiceKm)
Anschließend der Rest (zB Km < ServiceKm)

MaschineA Ölwechsel
MaschineA Keilriemen
MaschineC Lager
MaschineC Ölwechsel
MaschineC Filter
MaschineD Filter
MaschineB Filter

danke

PS: formatierte Tabellen/Ergebnis im Anhang
 

Anhänge

Werbung:
Kriterien für das sortierte Ergebnis.
Immer alle Services einer Maschinen im Block.
Zuerst Maschinen deren Servicezeitpunkt überschritten ist. (zB Km >= ServiceKm)
Danach Maschinen in der Vorlaufzeit (zB ServiceKm - WarnKm <= Km < ServiceKm)
Anschließend der Rest (zB Km < ServiceKm)

Was hast denn bisher versucht?

Forderung 1 lasse ich erst mal weg. Dann ist der Rest trivial durch Angabe dieser Bedingungen im ORDER BY.

Forderung 1: nicht ganz so trivial. Kann SQLite Window-Funktionen? Dann könnte man via PARTITION BY <der Machine> und ORDER BY <deine Sortierkriterien> die ROW_NUMBER berechnen und nach dieser sortieren.
 
Werbung:
Bisheriger Ansatz:
Eine Abfrage für die Maschinen in Forderung 1 gewünschter Reihenfolge und jeweils eine Abfrage für die Services der Maschinen. Für mein Befinden zu umständlich, das muss doch einfacher/effizienter gehn.

sqlite kann kein PARTITION BY
 
Zurück
Oben