Knifflige Geschichte, ich würde es so versuchen:
[sql]SELECT
Abteilung.name AS Name,
Personal.name AS Abteilung,
Zuordnung.date AS seit
FROM (Zuordnung
LEFT JOIN Abteilung ON Zuordnung.a_id = Abteilung.a_id
)
LEFT JOIN Personal ON Zuordnung.p_id = Personal.p_id
WHERE Zuordnung.date <= '2007-09-30'
GROUP BY Zuordnung.p_id[/sql]
Ansonsten lege ich Dir in solchen Fällen Folgendes ans Herz:
Einführung in JOINs
Fortgeschrittene JOIN-Techniken
HTH,
Siechfred