Hallo
Ich verwende die folgende Abfrage in einem View. In diesem View verwende ich immer wieder die gleichen Berechnungen. Ich weiss es nicht, ob einen besseren Weg geben würde, bestimmte Ausdrücke zu vereinfachen.
Zum Beispiel Variante?
Die Berechnungen sind für Erfassung der Arbeitszeit gedacht. Natuerlich auch die Vorschlaege für die Berechnung der Tagesarbeitszeit sind willkommen.
Danke.
Pol
Ich verwende die folgende Abfrage in einem View. In diesem View verwende ich immer wieder die gleichen Berechnungen. Ich weiss es nicht, ob einen besseren Weg geben würde, bestimmte Ausdrücke zu vereinfachen.
Zum Beispiel Variante?
Die Berechnungen sind für Erfassung der Arbeitszeit gedacht. Natuerlich auch die Vorschlaege für die Berechnung der Tagesarbeitszeit sind willkommen.
Danke.
Pol
SQL:
Sum(((Time_To_Sec(TimeDiff(arbeitszeit.ezeit, arbeitszeit.szeit)) / 3600) -
arbeitszeit.arbzpause)) As Netto,
((Sum((Case
When ((arbeitszeit.szeit >= arbeitszeit.gs) And (arbeitszeit.ezeit <=
arbeitszeit.ge) And (DayOfWeek(arbeitszeit.arbzstart) <> 1) And
(DayOfWeek(arbeitszeit.arbzstart) <> 7) And (arbeitszeit.arbszart <>
'Feiertag')) Then ((Time_To_Sec(TimeDiff(arbeitszeit.ezeit,
arbeitszeit.szeit)) / 3600) - arbeitszeit.arbzpause)
When ((arbeitszeit.szeit < arbeitszeit.gs) And (arbeitszeit.ezeit >
arbeitszeit.gs) And (arbeitszeit.ezeit <= arbeitszeit.ge) And
(DayOfWeek(arbeitszeit.arbzstart) <> 1) And
(DayOfWeek(arbeitszeit.arbzstart) <> 7) And (arbeitszeit.arbszart <>
'Feiertag')) Then ((Time_To_Sec(TimeDiff(arbeitszeit.ezeit, arbeitszeit.gs))
/ 3600) - arbeitszeit.arbzpause)
When ((arbeitszeit.szeit >= arbeitszeit.gs) And (arbeitszeit.szeit <
arbeitszeit.ge) And (arbeitszeit.ezeit > arbeitszeit.ge) And
(DayOfWeek(arbeitszeit.arbzstart) <> 1) And
(DayOfWeek(arbeitszeit.arbzstart) <> 7) And (arbeitszeit.arbszart <>
'Feiertag')) Then ((Time_To_Sec(TimeDiff(arbeitszeit.ge, arbeitszeit.szeit))
/ 3600) - arbeitszeit.arbzpause)
When ((DayOfWeek(arbeitszeit.arbzstart) = 1) Or
(DayOfWeek(arbeitszeit.arbzstart) = 7) Or
(arbeitszeit.arbszart = 'Feiertag')) Then arbeitszeit.abszsollstd Else 0
End)) - arbeitszeit.abszsollstd) - Sum(If((arbeitszeit.arbszart =
'Kompensation'), ((Time_To_Sec(TimeDiff(arbeitszeit.ezeit, arbeitszeit.szeit))
/ 3600) - arbeitszeit.arbzpause), 0))) As PlusMinus,
Zuletzt bearbeitet von einem Moderator: