PHP Portal » PHP Forum » Entwicklung » MySQL, PostgreSQL und SQL-konforme Datenbanken » den Fünftletzten bitte

[MySQL] den Fünftletzten bitte 

von
the Boss
Zitat
Hi,

kleine Knobelaufgabe am Abend

Ich habe eine Tabelle, wo Einträge mit einem Start- und einem Enddatum gemacht werden. Nun möchte ich eine Vearbeitungskette haben, welche immer nur 5 (kann später anders sein) Einträge gleichzeitig "abarbeitet". Die Abarbeitung bezieht dabei auf die aktuelle Zeit. D.h. wenn zu einem
Zeitpunkt bereits 5 Einträge laufen, soll der 6. Eintrag als Startzeit die Endzeit des ersten Eintrages erhalten.

Ist blöde zu erklären, daher kleines Beispiel:

Code
1
2
3
4
5
6
7
id start ende 1 1 5 2 2 4 3 1 7 4 1 9 5 2 8 6 4 6


zum Zeitpunkt 3 sind gerade id 1,2,3,4,5 in Abarbeitung. ID 6 kann erst starten, wenn ID 2 fertig ist, also bei Zeitpunkt 4. Nun möchte ich den Zeitpunkt ermitteln, wann ein Arbeitsplatz frei wird, in diesem Beispiel wäre es 5, da dort dann ID 1 beendet wird.
Als kleines Extra: die Tabelle kann mit sehr vielen Einträgen gefüllt ein, 100 können es locker werden. Alle sollen sich schön anstellen, so dass, immer nur 5 gleichzeitig laufen.

Am liebsten wäre mir eine SQL Anweisung, die mit den Startzeitpunkt für den neu einzufügenden Datensatz ausgibt.

Werbung

Re: den Fünftletzten bitte 

von
the Boss
Zitat
hab es jetzt doch mit eine SQL Anweisung und anschließendem PHP Code gelöst,
also: erst die 5 Einträge mit höchsten Fertigstellungsdatum holen,
und davon danach in PHP das kleinste Datum raussuchen.

Da fällt mir gerade ein, mit einem Subselect könnte dies gehen, aber ob dies dann performanter ist? Ich muss das mal testen.

Schnellantwort

ähnliche Themen

Traceroute bitte