view optimization

This commit is contained in:
Jörg Henke
2024-01-03 15:41:43 +01:00
parent 871c678061
commit 48ea140003
4 changed files with 54 additions and 50 deletions

View File

@ -31,20 +31,20 @@ grant select,insert,update,delete on done.t_freetime to timetrack;
create view done.v_daylimit as
with x(dayworktime, day, fk_login) as (
select coalesce(time_until - time_from, '0'::interval),
to_char(time_from, 'DD.MM.YYYY')::date,
time_from,
fk_login
from done.t_done
), y(daytime_from, daytime_until, day, fk_login) as (
select min(time_from), max(time_until),
to_char(time_from, 'DD.MM.YYYY')::date,
time_from,
fk_login
from done.t_done
group by to_char(time_from, 'DD.MM.YYYY')::date, fk_login
) select to_char(y.daytime_from, 'HH24:MI') as daytime_from,
to_char(y.daytime_until, 'HH24:MI') as daytime_until,
to_char(sum(x.dayworktime), 'HH24:MI') as dayworktime,
to_char(y.daytime_until - y.daytime_from - sum(x.dayworktime), 'HH24:MI') as breaks,
to_char(y.day, 'DD.MM.YYYY')::date as day,
group by time_from, fk_login
) select y.daytime_from::time,
y.daytime_until::time,
sum(x.dayworktime)::time as dayworktime,
y.daytime_until - y.daytime_from - sum(x.dayworktime) as breaks,
y.day::date,
y.fk_login
from x
left join y on y.day = x.day and y.fk_login = x.fk_login
@ -54,7 +54,7 @@ with x(dayworktime, day, fk_login) as (
grant select on done.v_daylimit to timetrack;
create view done.v_current_overtime as
select x.worktime_offset + sum(l.dayworktime::time - r.required) as overtime,
select x.worktime_offset + sum(l.dayworktime - r.required) as overtime,
to_char(now(), 'DD.MM.YYYY HH24:MI') as impact,
x.fk_login
from done.t_overtime x