Hallo,
Ich denke das ist nicht ganz so easy und ich habe nun schon viel hin- und hergejoint, aber nie das richtige Ergebnis bekommen.
Ich habe eine Tabelle projekt mit Spalten project_id, project_name,... und eine Tabelle project_milestone mit den Spalten project_id, milestone_id,milestone_date
Nun brauche ich eine Abfrage, die mir im Result den letzten, gefüllten Meilenstein UND den nächsten leeren Meilenstein liefert.
Die Tabelle Meilenstein wird bei Neuanlage eines Projekt initial befüllt, d.h. es sind zu bEginn alle Meilensteine bereits in der Tabelle, aber mit leeren milestone_date Feldern.
project_milestone:
project_id | milestone_id | milestone_date
1 | 0 | 2010-05-19 00:00:00
1 | 1 | 2010-05-20 00:00:00
1 | 2 | NULL
1 | 3 | NULL
1 | 4 | NULL
Ich bräuchte also sowas in der Art wie
SELECT
p.project_id, p.project_name,
current_milestone = (SELECT ? FROM project_milestone WHERE ?), -- müsste dann 1 ergeben
next_milestone = (SELECT ? FROM project_milestone WHERE ?) -- müsste dann 2 ergeben
FROM project p
Ich denke das ist nicht ganz so easy und ich habe nun schon viel hin- und hergejoint, aber nie das richtige Ergebnis bekommen.
Ich habe eine Tabelle projekt mit Spalten project_id, project_name,... und eine Tabelle project_milestone mit den Spalten project_id, milestone_id,milestone_date
Nun brauche ich eine Abfrage, die mir im Result den letzten, gefüllten Meilenstein UND den nächsten leeren Meilenstein liefert.
Die Tabelle Meilenstein wird bei Neuanlage eines Projekt initial befüllt, d.h. es sind zu bEginn alle Meilensteine bereits in der Tabelle, aber mit leeren milestone_date Feldern.
project_milestone:
project_id | milestone_id | milestone_date
1 | 0 | 2010-05-19 00:00:00
1 | 1 | 2010-05-20 00:00:00
1 | 2 | NULL
1 | 3 | NULL
1 | 4 | NULL
Ich bräuchte also sowas in der Art wie
SELECT
p.project_id, p.project_name,
current_milestone = (SELECT ? FROM project_milestone WHERE ?), -- müsste dann 1 ergeben
next_milestone = (SELECT ? FROM project_milestone WHERE ?) -- müsste dann 2 ergeben
FROM project p