ja, hast recht, habs mal mit 15 joins gemacht, mit einem join und max() war die Zeit 0,75s und mit 15 joins war es 1,03s. also 25% langsamer. Ich werde schauen ob das erträglich bleibt, wenn ich die Datenmenge erhöhe. Bei einer Auswertung mit "live"-Daten bin ich bis 4 Sekunden einverstanden, war darüber ist, muss wie du schon angemerkt hast, dass die Daten in eine Tabelle abspeichern und in der Nacht aktualisieren lassen.
Ich denke, ich bin jetzt am letzten Punkt, hier verstehe ich etwas nicht, überlege schon, aber weiß nicht weiter:
Ich mach einen left join auf eine Tabelle. In der Tabelle stehen die gearbeiteten Stunden des Mitarbeiters. Ich wollte gern die Summe der gearbeiteten Stunden für den Phasenbereich ausgeben. Ich dachte mir das ist doch ganz einfach
Wenn ich:
Erhalte ich dir korrekte Summe der Stunden.
Wenn ich aber das jetzt in mein Select mit einbiden will, wo ich die Phasen (phase von = 03.12.2018 und phase bis = 13.01.2019) habe:
bekomme ich das dreifache... ich finde keine Ursache dazu.
Ich denke, ich bin jetzt am letzten Punkt, hier verstehe ich etwas nicht, überlege schon, aber weiß nicht weiter:
Ich mach einen left join auf eine Tabelle. In der Tabelle stehen die gearbeiteten Stunden des Mitarbeiters. Ich wollte gern die Summe der gearbeiteten Stunden für den Phasenbereich ausgeben. Ich dachte mir das ist doch ganz einfach
Wenn ich:
Code:
select personalnr, sum(stunden) as gesamtstunden
from stundentabelle
where personalnr = 11917 and von >= '2018-12-03' and bis <= '2019-01-13'
group by personalnr
Erhalte ich dir korrekte Summe der Stunden.
Wenn ich aber das jetzt in mein Select mit einbiden will, wo ich die Phasen (phase von = 03.12.2018 und phase bis = 13.01.2019) habe:
Code:
select t.personalnr, t.phasevon, t.phasebis, sum(t2.stunden) as gesamtstunden
from t
left join stundentabelle t2 on t.personalnr = t2.personalnr and t2.von >= t.phasevon and t2.bis <= t.phasebis
group by t.personalnr, t.phasevon, t.phasebis
bekomme ich das dreifache... ich finde keine Ursache dazu.