Versuch mal bitte:
SELECT * FROM (SELECT RTRIM(mitarbeiter.nachname_s) + ', ' + RTRIM(mitarbeiter.vorname_s) AS Name,
abwesenheiten.abwesendvon_d,
abwesenheiten.abwesendbis_d,
abwesenheiten.begruendung_s,
abwesenheiten.abwesenheit_id,
len(RTRIM(mitarbeiter.nachname_s) + ', ' + RTRIM(mitarbeiter.vorname_s)) AS Name_Laenge,
(DATEDIFF(day, abwesenheiten.abwesendvon_d, abwesenheiten.abwesendbis_d)+1) AS 'Tage (insg.)' ,
(DATEDIFF(dd, abwesenheiten.abwesendvon_d, abwesenheiten.abwesendbis_d) + 1)
-(DATEDIFF(wk, abwesenheiten.abwesendvon_d, abwesenheiten.abwesendbis_d) * 2)
-(CASE WHEN DATENAME(dw, abwesenheiten.abwesendvon_d) = 'Sunday' THEN 1 ELSE 0 END)
-(CASE WHEN DATENAME(dw, abwesenheiten.abwesendbis_d) = 'Saturday' THEN 1 ELSE 0 END) AS 'Tage (ohne WE)',
'Urlaub' AS 'typ'
FROM abwesenheiten
LEFT JOIN mitarbeiter on abwesenheiten.mitarbeiter_s = (RTRIM(mitarbeiter.nachname_s) + ', ' + RTRIM(mitarbeiter.vorname_s))
UNION
SELECT bereitschaften.mitarbeiter_s,
bereitschaften.bereitschaftvon_dt,
bereitschaften.bereitschaftbis_dt,
bereitschaften.bemerkung_s,
bereitschaften.bereitschaft_id,
len(RTRIM(bereitschaften.mitarbeiter_s)) AS Name_Laenge,
bereitschaften.gepaufwand_n,
bereitschaften.tataufwand_n,
bereitschaften.bereitschaftstyp_s
FROM bereitschaften)
WHERE 'Name' IN (SELECT tmp.string_s
FROM tmp
WHERE login_s = 'FBOETT');