klaus: (MySQL) überschneidende Einträge filtern?

Beitrag lesen

Hallo Ilja,

ich glaube, ich habe es (dank Deiner Hilfe) selber hinbekommen.
Meine letzter Stand der Abfrage sieht jetzt wie folgt aus:

Sieht zwar reichlich komplex aus, aber besser habe ich es (bisher) nicht gelöst bekommen.

SELECT a.idnr, a.bestaetigt, a.urlaubvon, a.urlaubbis, a.halbertag, c.bezeichnung, c.farbe
FROM urlaubdaten AS a
LEFT JOIN urlaubarten AS c ON a.artnr = c.artnr
WHERE a.personalnummer = '3122'
AND a.urlaubvon LIKE '2007-%'
AND a.geloescht <> 'J'
UNION SELECT '', 'J', f.feiertag AS urlaubvon, f.feiertag AS urlaubbis, '', f.feiertag_text AS bezeichnung, 'gelb'
FROM feiertage f
WHERE f.feiertag LIKE '2007-%'
AND NOT
EXISTS (

SELECT g.idnr
FROM urlaubdaten g
WHERE g.personalnummer = '3122'
AND g.urlaubvon LIKE '2007-%'
AND g.geloescht <> 'J'
AND f.feiertag
BETWEEN g.urlaubvon
AND g.urlaubbis
)
ORDER BY urlaubvon