Mecha: Zweimal HAVING in einer Abfrage - oder andere Lösung?

Beitrag lesen

Hallo allerseits,

Ich stehe vor folgendem Problem:
Ich bin grade dabei, den alten Urlaubsplaner unserer Firma durch ein Webfrontend zu ersetzen.
Dafür habe ich zwei Tabellen angelegt: Tabelle "Mitarbeiter" mit Vorname, Nachname, Urlaubsanspruch etc.
Tabelle "Urlaub" mit eingetragenen Urlaubsdaten (Start- und Enddatum, Dauer,Gesamtwochen etc.).
Nach langem Rumprobieren habe ich die Tabelle "Urlaub" geändert: Ein Eintrag gilt nur für maximal 5 Tage; sind es mehr, werden zusätzliche Einträge eingefügt. Beispiel:
Hansi Müller hat vom 17.11.08 bis 28.11.08 zehn Tage Urlaub.
Jetzt gibt es einen Eintrag vom 17.11.-21.11. und einen zweiten vom 24.11.-28.11.
Soweit, so gut, doch nun brauche ich für die Gesamtübersicht sämtliche Einträge der Mitarbeiter - egal ob diese bereits Urlaub genommen haben oder nicht.
Das geht ja auch noch, ABER:
Urlaubseinträge, die mehr als eine Gesamtwoche betragen, sollen zusammengefasst werden. Nur bekomme ich mit meinen Statements entweder nur die Leute, die Urlaub hatten, oder nur die, die noch keinen hatten.

SELECT m.kuerzel,nachname,vorname,  
               urlaubsanspruch,urlaub_genommen,resturlaub,u1.startdatum,  
               u1.enddatum,u1.dauer, u1.wochen_gesamt,u1.woche,u1.urlaubsid  
FROM mitarbeiter as m  
LEFT OUTER JOIN  
urlaub as u1  
ON m.kuerzel = u1.kuerzel  
GROUP BY u1.urlaubsid  
HAVING u1.urlaubsid is not null

"IS NOT NULL" gibt mir halt die tatsächlichen Urlaube, "IS NULL" die Mitarbeiter, die keinen Urlaub hatten - nur wie kriege ich das beides unter einen Hut?

Gruß,
Michaela