Hallo Jörg,
Das konnte ich aber über ... lösen
Hm. So langsam beginne ich, den Überblick zu verlieren - bzw. ich habe ihn offenbar noch nie gehabt. Denn mir fällt jetzt ein möglicher Defekt auf.
Du hast die Datümer in alledaten.
Da mischst Du mit LEFT JOIN Sätze hinzu, die zu einem bestimmten User gehören. Aus der Stunden-Tabelle die vom Datum, aus der Sonder-Tabelle die, deren Datumsintervall das Datum einschließt.
Heißt doch eigentlich: Zwischen Stunden und Sonder gibt es überhaupt keinen Bezug - außer der User-ID. Aber das könnte zu wenig sein.
Wenn man deine Daten nicht kennt, ist es ja so, dass Du zu einem Datum x Sätze in der Stundentabelle und y Sätze in der Sondertabelle finden kannst. x und y sind Zahlen von 0 bis N. In dem Moment, wo x>1 UND y>1 wird, bekommst Du alle möglichen Kombinationen dieser Sätze geliefert.
Fall 1: Das ist okay so und deine Auswertung kommt damit klar.
Fall 2: Es ist nicht okay, aber dann musst Du die Garantie haben, dass x>1 UND y>1 nicht zutreffen kann. Ist diese Voraussetzung gegeben? Gibt es zu einem User und Tag maximal einen Stunden-Eintrag? Oder zu einem User und Intervall maximal einen Sonder-Eintrag? Ist vielleicht sogar generell x>1 ODER y>1 ausgeschlossen?
Fall 3: Es ist nicht okay, und du kannst die Garantie nicht geben. In dem Fall musst Du überlegen, wie Du damit umgehst.
Rolf
sumpsi - posui - obstruxi