Hallo,
ich arbeite an einem Projekt und hänge seit einiger Zeit bei einer SQL Query. Die Tabelle sieht wie folgt aus:
PNR STATUS DATUM ID
10 Vorbereitung 13:10:00 1
10 Nutzung 13:20:00 2
20 Deaktiviert 14:00:00 3
20 Deaktiviert 14:10:00 4
20 Deaktiviert 14:30:00 5
30 Deaktiviert 15:00:00 6
30 Vorbereitung 15:20:00 7
40 Deaktiviert 16:00:00 8
Die Abfrage soll folgendes erreichen:
a) wenn zu einem bestimmten PNR nur Elemente gehören, wo in der Spalte STATUS 'Deaktiviert' steht, dann muss das Query diejenige Zeile zurückgeben, wo das DATUM maximal ist.
D.H. für 20 soll es die Zeile zurückgeben, wo 14:30:00 steht.
Und für 40, die Zeile, wo 16:00:00 ist.
b) wenn zu einem PNR sowohl Deaktiviert, als auch etwas anderes in der Spalte STATUS steht, oder überhaupt kein Deaktiviert vorkommt, dann alle Zeilen, wo Deaktiviert nicht vorkommt.
D.h. für PNR=30 nur die Zeile, wo Vorbereitung steht, und für 10 die beide Zeilen.
Ich habe an einem stored procedure gedacht, wo ich änlich zum Java, alle PNR durchlaufe, und zu den jeweiligen PNR die Spalte STATUS abfrage, und entsprechende Werte aus der Spalte ID nehme. Dann kann ich die ursprüngliche Tabelle und die so zusammengestellten ID's miteinander verknüpfen.
Ginge es auch ohne proc?
(Wenn nicht oder zu kompliziert, dann ist es auch ok mit einem proc.)
Vielen Dank,
Daniel
ich arbeite an einem Projekt und hänge seit einiger Zeit bei einer SQL Query. Die Tabelle sieht wie folgt aus:
PNR STATUS DATUM ID
10 Vorbereitung 13:10:00 1
10 Nutzung 13:20:00 2
20 Deaktiviert 14:00:00 3
20 Deaktiviert 14:10:00 4
20 Deaktiviert 14:30:00 5
30 Deaktiviert 15:00:00 6
30 Vorbereitung 15:20:00 7
40 Deaktiviert 16:00:00 8
Die Abfrage soll folgendes erreichen:
a) wenn zu einem bestimmten PNR nur Elemente gehören, wo in der Spalte STATUS 'Deaktiviert' steht, dann muss das Query diejenige Zeile zurückgeben, wo das DATUM maximal ist.
D.H. für 20 soll es die Zeile zurückgeben, wo 14:30:00 steht.
Und für 40, die Zeile, wo 16:00:00 ist.
b) wenn zu einem PNR sowohl Deaktiviert, als auch etwas anderes in der Spalte STATUS steht, oder überhaupt kein Deaktiviert vorkommt, dann alle Zeilen, wo Deaktiviert nicht vorkommt.
D.h. für PNR=30 nur die Zeile, wo Vorbereitung steht, und für 10 die beide Zeilen.
Ich habe an einem stored procedure gedacht, wo ich änlich zum Java, alle PNR durchlaufe, und zu den jeweiligen PNR die Spalte STATUS abfrage, und entsprechende Werte aus der Spalte ID nehme. Dann kann ich die ursprüngliche Tabelle und die so zusammengestellten ID's miteinander verknüpfen.
Ginge es auch ohne proc?
(Wenn nicht oder zu kompliziert, dann ist es auch ok mit einem proc.)
Vielen Dank,
Daniel
Zuletzt bearbeitet: