From b2045008fcb4c135917b772dfe73a6ae294fd0aa Mon Sep 17 00:00:00 2001 From: Alexandra Date: Tue, 18 Mar 2025 16:12:56 +0100 Subject: [PATCH] =?UTF-8?q?Queries/Summierte=20und=20Einzelne=20Abwesenhei?= =?UTF-8?q?ten=20gr=C3=B6=C3=9Fer=203=20Tage=20der=20Klienten?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...wesenheiten größer 3 Tage der Klienten.txt | 21 +++++++++++++++++++ ...wesenheiten größer 3 Tage der Klienten.txt | 11 +++++----- 2 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 Queries/Einzelne Abwesenheiten größer 3 Tage der Klienten.txt diff --git a/Queries/Einzelne Abwesenheiten größer 3 Tage der Klienten.txt b/Queries/Einzelne Abwesenheiten größer 3 Tage der Klienten.txt new file mode 100644 index 000000000..3787ff8f4 --- /dev/null +++ b/Queries/Einzelne Abwesenheiten größer 3 Tage der Klienten.txt @@ -0,0 +1,21 @@ +-- Bei Arche Tecklenburg 7060431533 (APP3) +-- Einzelnen Abwesenheiten pro Kalenderjahr, wenn Abwesenheit > 3 Tage -> LWL Vorgaben für bes Wohnformen +-- gibt es auch als summierte Abwesenheiten + + +SELECT qry.Nachname, qry.Vorname, qry.Kategorie, DATE(qry.von) AS Start, DATE(qry.bis) AS Ende, qry.DauerJahr +FROM +(select p.`FirstName` as Vorname, p.`LastName` as Nachname, ar.`Description` as Kategorie, +CASE WHEN at.`Start`>= ':Jahr_Start' THEN at.`Start` ELSE ':Jahr_Start' END as von, +CASE WHEN at.`EndTime`<= ':Jahr_End' THEN at.`EndTime` ELSE ':Jahr_End' END as bis, +CASE WHEN at.`Start`>= ':Jahr_Start' THEN datediff(CASE WHEN ifnull(at.`EndTime`, CURDate()) <= ':Jahr_End' THEN at.`EndTime` ELSE ':Jahr_End' END, at.`Start`)-1 +ELSE datediff(ifnull(at.`EndTime`, CURDate()), ':Jahr_Start') END AS DauerJahr, +datediff(ifnull(at.`EndTime`, CURDate()), at.`Start`)-1 AS Dauer, +c.Oid AS cOid +from `person` p +inner join `customer` c on p.`Oid` = c.`PersonOid` +inner join `absencetime` at on c.`Oid` = at.`CustomerOid` +inner join `absencereason` ar on at.`AbsenceReasonOid` = ar.`Oid` +where c.`IsActive` = 1 and at.EndTime >= ':Jahr_Start' and at.Start <= ':Jahr_End')qry +where qry.Dauer > 3 +order by qry.Nachname, qry.von; \ No newline at end of file diff --git a/Queries/Summierte Abwesenheiten größer 3 Tage der Klienten.txt b/Queries/Summierte Abwesenheiten größer 3 Tage der Klienten.txt index bb0611ece..f711d3fa0 100644 --- a/Queries/Summierte Abwesenheiten größer 3 Tage der Klienten.txt +++ b/Queries/Summierte Abwesenheiten größer 3 Tage der Klienten.txt @@ -1,13 +1,14 @@ -- Bei Arche Tecklenburg 7060431533 (APP3) -- Summierte Abwesenheiten pro Kalenderjahr, wenn Abwesenheit > 3 Tage -> LWL Vorgaben für bes Wohnformen -SELECT qry.Nachname, qry.Vorname, sum(qry.Dauer) +SELECT qry.Nachname, qry.Vorname, sum(qry.DauerJahr) AS 'Summe Abwesenheit' FROM -(select p.`FirstName` as Vorname, p.`LastName` as Nachname, -ar.`Description` as Kategorie, -at.`Start` as von, +(select p.`FirstName` as Vorname, p.`LastName` as Nachname, ar.`Description` as Kategorie, +CASE WHEN at.`Start`>= ':Jahr_Start' THEN at.`Start` ELSE ':Jahr_Start' END as von, CASE WHEN at.`EndTime`<= ':Jahr_End' THEN at.`EndTime` ELSE ':Jahr_End' END as bis, -datediff(CASE WHEN ifnull(at.`EndTime`, CURDate()) <= ':Jahr_End' THEN at.`EndTime` ELSE ':Jahr_End' END , at.`Start`)-1 AS Dauer, +CASE WHEN at.`Start`>= ':Jahr_Start' THEN datediff(CASE WHEN ifnull(at.`EndTime`, CURDate()) <= ':Jahr_End' THEN at.`EndTime` ELSE ':Jahr_End' END, at.`Start`)-1 +ELSE datediff(ifnull(at.`EndTime`, CURDate()), ':Jahr_Start') END AS DauerJahr, +datediff(ifnull(at.`EndTime`, CURDate()), at.`Start`)-1 AS Dauer, c.Oid AS cOid from `person` p inner join `customer` c on p.`Oid` = c.`PersonOid`