Definition der Daten-Tabellen und Ansichten.
This commit is contained in:
@@ -0,0 +1,45 @@
|
|||||||
|
-- # Definition der Tabelle
|
||||||
|
-- DROP TABLE public."Arbeitszeiten";
|
||||||
|
create table public."Arbeitszeiten"
|
||||||
|
(
|
||||||
|
"Datum" date not null,
|
||||||
|
"Arbeitszeit" interval(6) null,
|
||||||
|
constraint "Arbeitszeiten_pkey" primary key ("Datum")
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- # Definition der Ansichten
|
||||||
|
-- ## Wöchentlich
|
||||||
|
create view "Arbeitszeiten - Woche" ("Woche", "Gesamtarbeitszeit", "Arbeitstage", "Überstunden") as
|
||||||
|
select
|
||||||
|
to_char(date_trunc('week'::text, "Arbeitszeiten"."Datum"::timestamp with time zone),
|
||||||
|
'TMYYYY#WW'::text) as "Woche",
|
||||||
|
sum("Arbeitszeiten"."Arbeitszeit") as "Gesamtarbeitszeit",
|
||||||
|
count("Arbeitszeiten"."Datum") as "Arbeitstage",
|
||||||
|
sum("Arbeitszeiten"."Arbeitszeit") - count("Arbeitszeiten"."Datum") ::double precision * '08:00:00'::interval as "Überstunden"
|
||||||
|
from "Arbeitszeiten"
|
||||||
|
group by (date_trunc('week'::text, "Arbeitszeiten"."Datum"::timestamp with time zone))
|
||||||
|
order by (date_trunc('week'::text, "Arbeitszeiten"."Datum"::timestamp with time zone));
|
||||||
|
|
||||||
|
-- ## Monatlich
|
||||||
|
create view "Arbeitszeiten - Monat" ("Monat", "Gesamtarbeitszeit", "Arbeitstage", "Überstunden") as
|
||||||
|
select
|
||||||
|
to_char(date_trunc('month'::text, "Arbeitszeiten"."Datum"::timestamp with time zone),
|
||||||
|
'TMYYYY TMMonth'::text) as "Monat",
|
||||||
|
sum("Arbeitszeiten"."Arbeitszeit") as "Gesamtarbeitszeit",
|
||||||
|
count("Arbeitszeiten"."Datum") as "Arbeitstage",
|
||||||
|
sum("Arbeitszeiten"."Arbeitszeit") - count("Arbeitszeiten"."Datum") ::double precision * '08:00:00'::interval as "Überstunden"
|
||||||
|
from "Arbeitszeiten"
|
||||||
|
group by (date_trunc('month'::text, "Arbeitszeiten"."Datum"::timestamp with time zone))
|
||||||
|
order by (date_trunc('month'::text, "Arbeitszeiten"."Datum"::timestamp with time zone));
|
||||||
|
|
||||||
|
-- ## Jährlich
|
||||||
|
create view "Arbeitszeiten - Jahr"("Jahr", "Gesamtarbeitszeit", "Arbeitstage", "Überstunden") as
|
||||||
|
select
|
||||||
|
date_part('year'::text, "Arbeitszeiten"."Datum")::text as "Jahr",
|
||||||
|
sum("Arbeitszeiten"."Arbeitszeit") as "Gesamtarbeitszeit",
|
||||||
|
count("Arbeitszeiten"."Datum") as "Arbeitstage",
|
||||||
|
sum("Arbeitszeiten"."Arbeitszeit") - count("Arbeitszeiten"."Datum") ::double precision * '08:00:00'::interval as "Überstunden"
|
||||||
|
from "Arbeitszeiten"
|
||||||
|
group by (date_part('year'::text, "Arbeitszeiten"."Datum"))
|
||||||
|
order by (date_part('year'::text, "Arbeitszeiten"."Datum"));
|
||||||
Reference in New Issue
Block a user