Problem bei Abfrage

Michi_R

Fleissiger Benutzer
Beiträge
81
Hallo Leute,

ich habe bereits ein Abfrageergebnis, das so aussieht wie in angefügter Excel Tabelle.
Es geht darum, dass sich verschiedene Teile in unterschiedlichen Bearbeitungsschritten befinden können und ich wissen möchte, in welchem Bearbeitungsschritt zum Abfragezeitpunkt wie viele Teile hängen/gerade bearbeitet werden.

Meine Abfrage (s. Excelsheet) liefert mir zu jedem Teil die ganze Historie, ich brauche aber eigtl nur den neuesten Schritt (in der Excel Tabelle grün markiert). Wenn ich den grün markierten Zeilen dann die "aktueller Bearbeitungsschritt" entnehme und die dann für jeden Bearbeitungsschritt zähle, erhalte ich mein gewünschtes Ergebnis.
Im Excel Beispiel Fall also, dass sich je ein Teil in den Bearbeitungsschritten 10, 11, 13, 15, 21 befindet.

Jedoch weiß ich nicht wie eine Abfrage zu meinem gewünschten Ergebnis lauten müsste.
Im Moment bin ich noch an dem Punkt/bei der Lösung, die Abfrage so zu lassen, das Ergebnis in PHP in ein Array zu bringen und dort per Schleife alle (bis auf den jeweils neuesten Eintrag pro Teil) einträge zu eliminieren. Die, die übrig bleiben könnte ich dann zählen.

Problem ist, dass die Ergebnistabelle in Wirklichkeit sehr groß ist und das wrsl ewig dauert bis die Schleifen über ca. 100000 Zeilen gelaufen ist und selektiert hat.

Gesucht ist also ein Query auf eine Tabelle wie im Excelsheet, das mir mein beschriebenes Ergebnis liefert.

Kann da wer helfen?
Danke!
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.423
Hallo Leute,

ich habe bereits ein Abfrageergebnis, das so aussieht wie in angefügter Excel Tabelle.

Gesucht ist also ein Query auf eine Tabelle wie im Excelsheet, das mir mein beschriebenes Ergebnis liefert.

Kann da wer helfen?
Danke!


select seriennummer, max("Aktueller Bearbeitungsschritt"), max("nächster Bearbeitungsschritt") from deine_tabelle GROUP BY seriennummer;

liefert Dir erst einmal, was wo ist. Das kann man dann nochmal auf die einzelnen Bearbeitungsschritte aggregieren. Bitte statt bunter Bilder lieber die korrekten Tabellen in Codeblöcken hier zeigen, vereinfacht die Sache ungemein.
 

Michi_R

Fleissiger Benutzer
Beiträge
81
Super, danke. genau das habe ich gesucht.
Mein Query sieht nun so aus:

Select Seriennummer, MAX(aktueller_bearbeitungsschritt) as current_step from part_history
group by Seriennummer

Jetzt würde ich gerne mal nur die haben, die beim aktuellen Bearbeitungsschritt "10" haben. Habe den Query so geändert:

Select Seriennummer, MAX(aktueller_bearbeitungsschritt) as current_step from part_history
where current_step='10'
group by Seriennummer

Hier bekomme ich aber die Fehlermeldung "Invalid column name 'current_step'

Weiß du vllt. woran das liegt?
 

akretschmer

Datenbank-Guru
Beiträge
9.423
Super, danke. genau das habe ich gesucht.
Mein Query sieht nun so aus:

Select Seriennummer, MAX(aktueller_bearbeitungsschritt) as current_step from part_history
group by Seriennummer

Jetzt würde ich gerne mal nur die haben, die beim aktuellen Bearbeitungsschritt "10" haben. Habe den Query so geändert:

Select Seriennummer, MAX(aktueller_bearbeitungsschritt) as current_step from part_history
where current_step='10'
group by Seriennummer

Hier bekomme ich aber die Fehlermeldung "Invalid column name 'current_step'

Weiß du vllt. woran das liegt?


Du suchst HAVING.
 
Werbung:
Oben