Hi,
ich habe die folgenden Tabellen (die fuer die Abfrage relevanten Spalten):
Tabelle: kunden
+-------------+-------------+
| kunden_id | kunden_name |
+-------------+-------------+
| 1 | kunde-1 |
| 2 | kunde-2 |
| 3 | kunde-3 |
| 4 | kunde-4 |
| 5 | kunde-5 |
+-------------+-------------+
Tabelle: objekte
+-------------+-------------+-------------+
| objekt_id | kunden_id | objekt_name |
+-------------+-------------+-------------+
| 1 | 1 | objekt-1 |
| 2 | 2 | objekt-2 |
| 3 | 3 | objekt-3 |
| 4 | 4 | objekt-4 |
| 5 | 4 | objekt-5 |
| 6 | 4 | objekt-6 |
+-------------+-------------+-------------+
Tabelle: objekt_notizen
+---------------------+-------------+-----------+-----------+
| objekt_notizen_id | objekt_id | notiz | aktiv |
+---------------------+-------------+-----------+-----------+
| 1 | 1 | notiz-1-1 | Y |
| 2 | 1 | notiz-1-2 | N |
| 3 | 1 | notiz-1-3 | Y |
| 4 | 1 | notiz-1-4 | Y |
| 5 | 2 | notiz-2-1 | Y |
| 6 | 2 | notiz-2-2 | Y |
| 7 | 4 | notiz-4-1 | Y |
| 8 | 4 | notiz-4-2 | Y |
| 9 | 5 | notiz-5-1 | Y |
| 10 | 6 | notiz-6-1 | Y |
+---------------------+-------------+-----------+-----------+
Tabelle: services
+--------------+-------------+--------------+---------------+
| service_id | objekt_id | service_text | service_datum |
+--------------+-------------+--------------+---------------+
| 1 | 1 | service-1 | 2007-10-10 |
| 2 | 2 | service-2 | 2007-10-11 |
| 3 | 3 | service-3 | 2007-10-12 |
| 4 | 1 | service-4 | 2008-02-01 |
| 5 | 2 | service-5 | 2008-02-02 |
| 6 | 3 | service-6 | 2008-02-03 |
| 7 | 5 | service-7 | 2008-02-04 |
+--------------+-------------+--------------+---------------+
Ich moechte nun eine ausfuehrliche Gesamtliste der Objekte ausgeben - in der folgenden Form:
Pro Objekt eine Zeile,
alle aktiven Objekt-Notizen sollen aufgelistet werden - objekte.notiz = 'Y',
zusaetzlich soll das letzte Service aufgelistet werden - MAX(service.service_datum).
Es gibt jedoch Kunden ohne Objekte
und Objekte ohne Objekt-Notizen bzw. Objekte mit mehreren aktiven Notizen
sowie Objekte ohne Service-Einsaetze.
Ich scheitere bei den verschachtelten LEFT OUTER JOINS.
Brauche ich eine Unterabfragen um das letzte Service zu erhalten?
+--------------+-------------+----------------+--------------+------------------+
| Kunden | Objekte | Objekt-Notizen | Service | letztes Services |
+--------------+-------------+----------------+--------------+------------------+
| kunde-1 | objekt-1 | notiz-1-1 | Service 4 | 2008-02-01 |
| | | notiz-1-3 | | |
| | | notiz-1-4 | | |
+--------------+-------------+----------------+--------------+------------------+
| kunde-2 | objekt-2 | notiz-2-1 | Service 5 | 2008-02-02 |
| | | notiz-2-2 | | |
+--------------+-------------+----------------+--------------+------------------+
| kunde-3 | objekt-3 | | Service 6 | 2008-02-03 |
+--------------+-------------+----------------+--------------+------------------+
| kunde-4 | objekt-4 | notiz-4-1 | | |
| | | notiz-4-2 | | |
+--------------+-------------+----------------+--------------+------------------+
| kunde-4 | objekt-5 | notiz-5-1 | Service 7 | 2008-02-04 |
+--------------+-------------+----------------+--------------+------------------+
| kunde-4 | objekt-6 | notiz-6-1 | | |
+--------------+-------------+----------------+--------------+------------------+
| kunde-5 | | | | |
+--------------+-------------+----------------+--------------+------------------+
Vielen Dank im Voraus fuer Loesungsansaetze und Hilfen,
Tom.