From ac78bf838d248c55988b0e96116b043e1d0e54bf Mon Sep 17 00:00:00 2001 From: Alexandra Date: Tue, 12 May 2026 16:03:04 +0200 Subject: [PATCH] =?UTF-8?q?Liste=20aktuelle=20Bewilligungsangaben=20und=20?= =?UTF-8?q?Betreuung=20aus=20Bewilligungen=20-=20f=C3=BCr=20Caritas=20G?= =?UTF-8?q?=C3=BCnzburg=20SupportOID=3D162631?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ngaben und Betreuung aus Bewilligungen.txt | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 Queries/Liste aktuelle Bewilligungsangaben und Betreuung aus Bewilligungen.txt diff --git a/Queries/Liste aktuelle Bewilligungsangaben und Betreuung aus Bewilligungen.txt b/Queries/Liste aktuelle Bewilligungsangaben und Betreuung aus Bewilligungen.txt new file mode 100644 index 000000000..47cefb5b6 --- /dev/null +++ b/Queries/Liste aktuelle Bewilligungsangaben und Betreuung aus Bewilligungen.txt @@ -0,0 +1,75 @@ +// Ursprünglich Caritas GünzburgNeuUlm 3432911735 (APP4) +// Liste aller Klienten mit aktuellen Bewilligungsangaben und Betreuung aus Bewilligungen + +SELECT + base.Nachname, base.Vorname, base.Kostentraeger, base.`Bewilligung 1`, base.`Stunden 1`, + (SELECT GROUP_CONCAT( + CONCAT(p2.`FirstName`, ' ', p2.`LastName`, ' ', ROUND(scap2e.Betreuungsschluessel, 2), CASE WHEN scap2e.IsAbsolut = 0 THEN '%' ELSE '' END) + ORDER BY scap2e.EmployeeOid SEPARATOR ', ') + FROM supportconceptapprovalperiod2employee scap2e + INNER JOIN `employee` e ON scap2e.`EmployeeOid` = e.`Oid` + INNER JOIN `person` p2 ON e.`PersonOid` = p2.`Oid` + WHERE scap2e.SupportConceptApprovalPeriodOid = base.scap1_oid + ) AS 'Betreuer 1', + base.`Bewilligung 2`, base.`Stunden 2`, + (SELECT GROUP_CONCAT( + CONCAT(p2.`FirstName`, ' ', p2.`LastName`, ' ', ROUND(scap2e.Betreuungsschluessel, 2), CASE WHEN scap2e.IsAbsolut = 0 THEN '%' ELSE '' END) + ORDER BY scap2e.EmployeeOid SEPARATOR ', ') + FROM supportconceptapprovalperiod2employee scap2e + INNER JOIN `employee` e ON scap2e.`EmployeeOid` = e.`Oid` + INNER JOIN `person` p2 ON e.`PersonOid` = p2.`Oid` + WHERE scap2e.SupportConceptApprovalPeriodOid = base.scap2_oid + ) AS 'Betreuer 2', + base.`Bewilligung 3`, base.`Stunden 3`, + (SELECT GROUP_CONCAT( + CONCAT(p2.`FirstName`, ' ', p2.`LastName`, ' ', ROUND(scap2e.Betreuungsschluessel, 2), CASE WHEN scap2e.IsAbsolut = 0 THEN '%' ELSE '' END) + ORDER BY scap2e.EmployeeOid SEPARATOR ', ') + FROM supportconceptapprovalperiod2employee scap2e + INNER JOIN `employee` e ON scap2e.`EmployeeOid` = e.`Oid` + INNER JOIN `person` p2 ON e.`PersonOid` = p2.`Oid` + WHERE scap2e.SupportConceptApprovalPeriodOid = base.scap3_oid + ) AS 'Betreuer 3' +FROM (SELECT p.LastName AS Nachname, p.FirstName AS Vorname, o.`Name` AS Kostentraeger, + MAX(CASE WHEN scap.rn = 1 THEN cat1.Name END) AS 'Bewilligung 1', + MAX(CASE WHEN scap.rn = 1 THEN ROUND(scap.ApprovedBETotal, 2) END) AS 'Stunden 1', + MAX(CASE WHEN scap.rn = 2 THEN cat2.Name END) AS 'Bewilligung 2', + MAX(CASE WHEN scap.rn = 2 THEN ROUND(scap.ApprovedBETotal, 2) END) AS 'Stunden 2', + MAX(CASE WHEN scap.rn = 3 THEN cat3.Name END) AS 'Bewilligung 3', + MAX(CASE WHEN scap.rn = 3 THEN ROUND(scap.ApprovedBETotal, 2) END) AS 'Stunden 3', + MAX(CASE WHEN scap.rn = 1 THEN scap.Oid END) AS scap1_oid, + MAX(CASE WHEN scap.rn = 2 THEN scap.Oid END) AS scap2_oid, + MAX(CASE WHEN scap.rn = 3 THEN scap.Oid END) AS scap3_oid + FROM `person` p + INNER JOIN `customer` c ON p.Oid = c.PersonOid + LEFT JOIN team2customer t2c ON c.Oid = t2c.CustomerOid + LEFT JOIN team t ON t2c.TeamOid = t.Oid + INNER JOIN `supportconcept` sc ON c.Oid = sc.CustomerOid + INNER JOIN `costbearer2supportconcept` cb2sc ON sc.Oid = cb2sc.SupportConceptOid + INNER JOIN `costbearer` cb ON cb2sc.`CostBearerOid` = cb.`Oid` + INNER JOIN `organisation` o ON cb.`Oid` = o.`CostBearerOid` + INNER JOIN ( + SELECT s1.Oid, s1.CostBearer2SupportConceptOid, s1.ApprovedBETotal, + s1.Start, s1.EndDate, s1.ServiceCategoryOid, s1.Notice, + COUNT(s2p.Oid) + 1 AS rn + FROM `supportconceptapprovalperiod` s1 + LEFT JOIN servicecategory sc1 ON s1.ServiceCategoryOid = sc1.Oid + LEFT JOIN ( + SELECT s2.Oid, s2.CostBearer2SupportConceptOid, s2.Start, s2.EndDate, + CASE WHEN sc2.Name = 'Qualifiziert' THEN 0 ELSE 1 END AS prio + FROM `supportconceptapprovalperiod` s2 + LEFT JOIN servicecategory sc2 ON s2.ServiceCategoryOid = sc2.Oid + WHERE s2.Start <= CURDATE() AND (s2.EndDate IS NULL OR s2.EndDate >= CURDATE()) + ) s2p ON s1.CostBearer2SupportConceptOid = s2p.CostBearer2SupportConceptOid + AND (s2p.prio < CASE WHEN sc1.Name = 'Qualifiziert' THEN 0 ELSE 1 END + OR (s2p.prio = CASE WHEN sc1.Name = 'Qualifiziert' THEN 0 ELSE 1 END + AND (s2p.Start < s1.Start OR (s2p.Start = s1.Start AND s2p.Oid < s1.Oid)))) + WHERE s1.Start <= CURDATE() AND (s1.EndDate IS NULL OR s1.EndDate >= CURDATE()) + GROUP BY s1.Oid, s1.CostBearer2SupportConceptOid, s1.ApprovedBETotal, s1.Start, s1.EndDate, s1.ServiceCategoryOid, s1.Notice + ) scap ON cb2sc.Oid = scap.CostBearer2SupportConceptOid + LEFT JOIN servicecategory cat1 ON scap.ServiceCategoryOid = cat1.Oid AND scap.rn = 1 + LEFT JOIN servicecategory cat2 ON scap.ServiceCategoryOid = cat2.Oid AND scap.rn = 2 + LEFT JOIN servicecategory cat3 ON scap.ServiceCategoryOid = cat3.Oid AND scap.rn = 3 + WHERE c.IsActive = 1 AND sc.IsActive = 1 + GROUP BY p.Oid, p.LastName, p.FirstName, p.DateOfBirth, o.`Name`, cb2sc.Oid, cb2sc.ApprovedStartDate, cb2sc.ApprovedEndDate +) base +ORDER BY base.Nachname, base.Vorname; \ No newline at end of file