Queries/Klienten mit Team, Pflegegrad und Leistungskategorie der Bewilligung.txt

Queries/Mitarbeiter mit regelmäßiger Wochenarbeitszeit und Qualifikation.txt
158500 - für Arche Tecklenburg
This commit is contained in:
2026-03-26 11:05:07 +01:00
parent f99a797398
commit 650b02986b
2 changed files with 41 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
-- Bei Arche Tecklenburg 7060431533 (APP3)
-- Teamnamen werden in schön übersetzt
-- und Leistungskategorien, wenn mehrere vorhanden sind werden in eine Spalte geschrieben
SELECT
p.LastName AS Nachname,
p.FirstName AS Vorname,
p.DateOfBirth AS Geburtsdatum,
GROUP_CONCAT(DISTINCT CASE WHEN t.Name = 'Apfels' THEN 'Apfelbaumallee' WHEN t.Name = 'Camper' THEN 'Hofbauers Kamp' ELSE t.Name END ORDER BY t.Name SEPARATOR ', ') AS Haus,
c.Pflegegrad,
GROUP_CONCAT(CASE WHEN cat.Name LIKE '%LT%' OR cat.Name LIKE '%HBG%' THEN cat.Name END SEPARATOR ', ') AS 'LT/HBG'
-- GROUP_CONCAT(CASE WHEN cat.Name LIKE '%HBG%' THEN cat.Name END SEPARATOR ', ') AS HBG
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
JOIN `supportconceptapprovalperiod` scap ON cb2sc.Oid = scap.CostBearer2SupportConceptOid
INNER JOIN servicecategory cat ON scap.ServiceCategoryOid = cat.Oid
WHERE c.IsActive = 1 and sc.IsActive = 1 AND scap.Start <= CURDATE() AND (scap.EndDate IS NULL OR scap.EndDate >= CURDATE())
GROUP BY p.Oid, p.LastName, p.FirstName
ORDER BY t.Name, p.LastName;

View File

@@ -0,0 +1,18 @@
-- Bei Arche Tecklenburg 7060431533 (APP3)
-- Qualifikationen, wenn mehrere vorhanden werden die in eine Spalte geschrieben
SELECT
emp.PersonnelNumber AS Personalnummer,
CONCAT(p.`FirstName`, ' ', p.`LastName`) as Name,
COALESCE(ROUND(con.WeeklyTotalhours, 2), ROUND(con.MonthlyTotalHours * 12 / 52, 2)) as `regelmäßige wö. Arbeitszeit`,
GROUP_CONCAT(vle.Value SEPARATOR ', ') as Qualifikation
FROM `person` p
INNER JOIN `employee` emp ON p.`Oid` = emp.`PersonOid`
LEFT JOIN contract con ON con.Oid = (SELECT c2.Oid FROM contract c2 WHERE c2.EmployeeOid = emp.Oid AND c2.IsActive = 1
AND c2.EntryDate <= CURDATE() AND (c2.ContractEndDate IS NULL OR c2.ContractEndDate >= CURDATE())
ORDER BY c2.EntryDate DESC LIMIT 1)
LEFT JOIN valuelistentry2object v2o ON v2o.ObjectOid = emp.Oid AND v2o.ObjectTid = 2 AND v2o.IsActive = 1
LEFT JOIN valuelistentry vle ON vle.Oid = v2o.ValuelistEntryOid AND vle.Type = 5 AND vle.IsActive = 1
WHERE emp.IsActive = 1
GROUP BY emp.Oid, emp.PersonnelNumber, p.FirstName, p.LastName, con.WeeklyTotalhours, con.MonthlyTotalHours
ORDER BY p.Lastname;