Hallo,
es gibt noch eine Möglichkeit, die Perfomance dabei ist natürlich im wesentlichen auch von den vorhandenen Indexen abhängig (wie fast immer
)
select
P.PERSONAL_ID,
(Select sum(U.FEHLTAGE_ARBEITSTAGE) from PERSONAL U where U.ID=P.ID and U.FEHLTAGE_ART='U') as Urlaub,
(Select sum(F.FEHLTAGE_ARBEITSTAGE) from PERSONAL F where F.ID=P.ID and F.FEHLTAGE_ART='F') as Fehltage,
(Select sum(K.FEHLTAGE_ARBEITSTAGE) from PERSONAL K where K.ID=P.ID and K.FEHLTAGE_ART='K') as Krank
from PERSONAL P
evtl. muss das natürlich auf eine zeitliche Beschränkung erweitert werden, wenn man z. B. nur eine Monat betrachten möchte.