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`