Queries/Summierte und Einzelne Abwesenheiten größer 3 Tage der Klienten
This commit is contained in:
@@ -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;
|
||||||
@@ -1,13 +1,14 @@
|
|||||||
-- Bei Arche Tecklenburg 7060431533 (APP3)
|
-- Bei Arche Tecklenburg 7060431533 (APP3)
|
||||||
-- Summierte Abwesenheiten pro Kalenderjahr, wenn Abwesenheit > 3 Tage -> LWL Vorgaben für bes Wohnformen
|
-- 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
|
FROM
|
||||||
(select p.`FirstName` as Vorname, p.`LastName` as Nachname,
|
(select p.`FirstName` as Vorname, p.`LastName` as Nachname, ar.`Description` as Kategorie,
|
||||||
ar.`Description` as Kategorie,
|
CASE WHEN at.`Start`>= ':Jahr_Start' THEN at.`Start` ELSE ':Jahr_Start' END as von,
|
||||||
at.`Start` as von,
|
|
||||||
CASE WHEN at.`EndTime`<= ':Jahr_End' THEN at.`EndTime` ELSE ':Jahr_End' END as bis,
|
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
|
c.Oid AS cOid
|
||||||
from `person` p
|
from `person` p
|
||||||
inner join `customer` c on p.`Oid` = c.`PersonOid`
|
inner join `customer` c on p.`Oid` = c.`PersonOid`
|
||||||
|
|||||||
Reference in New Issue
Block a user