Bericht für Korridore in Bayern
SupportOID=160800
This commit is contained in:
@@ -0,0 +1,51 @@
|
|||||||
|
-- Wie viel Prozent der Stunden wurden bei Leistungskategorie Qualifiziert durch Assistenzkraft erbracht und andersrum
|
||||||
|
-- 3432911735 (APP4) Caritasverband GünzburgNeuUlm
|
||||||
|
|
||||||
|
-- *** Mapping (kundenspezifisch anpassen) ***
|
||||||
|
-- Leistungskategorie 'Qualifiziert' -> passende Qualifikation: Q1, Q2
|
||||||
|
-- Leistungskategorie 'Unterstützend' -> passende Qualifikation: Q3, Q4
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
p.LastName AS 'Nachname',
|
||||||
|
p.Firstname AS 'Vorname',
|
||||||
|
c2s.ApprovedStartDate AS 'Bewilligt von',
|
||||||
|
c2s.ApprovedEndDate AS 'Bewilligt bis',
|
||||||
|
ROUND(SUM(CASE WHEN scat.Name = 'Qualifiziert' AND q12.EmployeeOid IS NOT NULL THEN sr.Roundedduration / IF(sr.GroupEmployeeCount IS NULL, 1, sr.GroupEmployeeCount) ELSE 0 END) / 60, 2) AS 'Qualifiziert durch Q1/Q2',
|
||||||
|
ROUND(SUM(CASE WHEN scat.Name = 'Qualifiziert' AND q34.EmployeeOid IS NOT NULL THEN sr.Roundedduration / IF(sr.GroupEmployeeCount IS NULL, 1, sr.GroupEmployeeCount) ELSE 0 END) / 60, 2) AS 'Qualifiziert durch Q3/Q4',
|
||||||
|
ROUND(SUM(CASE WHEN scat.Name = 'Unterstützend' AND q12.EmployeeOid IS NOT NULL THEN sr.Roundedduration / IF(sr.GroupEmployeeCount IS NULL, 1, sr.GroupEmployeeCount) ELSE 0 END) / 60, 2) AS 'Unterstützend durch Q1/Q2',
|
||||||
|
ROUND(SUM(CASE WHEN scat.Name = 'Unterstützend' AND q34.EmployeeOid IS NOT NULL THEN sr.Roundedduration / IF(sr.GroupEmployeeCount IS NULL, 1, sr.GroupEmployeeCount) ELSE 0 END) / 60, 2) AS 'Unterstützend durch Q3/Q4',
|
||||||
|
ROUND(SUM(CASE WHEN q12.EmployeeOid IS NULL AND q34.EmployeeOid IS NULL THEN sr.Roundedduration / IF(sr.GroupEmployeeCount IS NULL, 1, sr.GroupEmployeeCount) ELSE 0 END) / 60, 2) AS 'Ohne Qualifikation',
|
||||||
|
ROUND(SUM(sr.Roundedduration / IF(sr.GroupEmployeeCount IS NULL, 1, sr.GroupEmployeeCount)) / 60, 2) AS 'Gesamt (Std)',
|
||||||
|
-- Unterqualifiziert: Qualifiziert durch Q3/Q4 in %
|
||||||
|
ROUND(SUM(CASE WHEN scat.Name = 'Qualifiziert' AND q34.EmployeeOid IS NOT NULL THEN sr.Roundedduration / IF(sr.GroupEmployeeCount IS NULL, 1, sr.GroupEmployeeCount) ELSE 0 END)
|
||||||
|
/ NULLIF(SUM(CASE WHEN scat.Name = 'Qualifiziert' THEN sr.Roundedduration / IF(sr.GroupEmployeeCount IS NULL, 1, sr.GroupEmployeeCount) ELSE 0 END), 0) * 100, 1) AS '% Unterqualifiziert',
|
||||||
|
-- Überqualifiziert: Unterstützend durch Q1/Q2 in %
|
||||||
|
ROUND(SUM(CASE WHEN scat.Name = 'Unterstützend' AND q12.EmployeeOid IS NOT NULL THEN sr.Roundedduration / IF(sr.GroupEmployeeCount IS NULL, 1, sr.GroupEmployeeCount) ELSE 0 END)
|
||||||
|
/ NULLIF(SUM(CASE WHEN scat.Name = 'Unterstützend' THEN sr.Roundedduration / IF(sr.GroupEmployeeCount IS NULL, 1, sr.GroupEmployeeCount) ELSE 0 END), 0) * 100, 1) AS '% Überqualifiziert'
|
||||||
|
FROM servicerecord sr
|
||||||
|
JOIN costbearer2supportconcept c2s ON sr.CostBearer2SupportConceptOid = c2s.Oid
|
||||||
|
JOIN supportconcept sc ON c2s.SupportConceptOid = sc.Oid
|
||||||
|
JOIN customer c ON sc.CustomerOid = c.Oid
|
||||||
|
JOIN person p ON c.PersonOid = p.Oid
|
||||||
|
JOIN servicedescription sd ON sd.Oid = sr.ServiceDescriptionOid
|
||||||
|
JOIN servicecategory scat ON scat.Oid = sd.ServiceCategoryOid
|
||||||
|
|
||||||
|
-- *** Mapping (kundenspezifisch anpassen) ***
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT DISTINCT v2o.ObjectOid AS EmployeeOid
|
||||||
|
FROM valuelistentry2object v2o
|
||||||
|
JOIN valuelistentry vle ON vle.Oid = v2o.ValuelistEntryOid
|
||||||
|
WHERE v2o.ObjectTid = 2 AND v2o.IsActive = 1 AND vle.Type = 5 AND vle.IsActive = 1 AND vle.Value IN ('Q1', 'Q2') -- Qualifikationen für 'Qualifiziert'
|
||||||
|
) q12 ON q12.EmployeeOid = sr.EmployeeOid
|
||||||
|
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT DISTINCT v2o.ObjectOid AS EmployeeOid
|
||||||
|
FROM valuelistentry2object v2o
|
||||||
|
JOIN valuelistentry vle ON vle.Oid = v2o.ValuelistEntryOid
|
||||||
|
WHERE v2o.ObjectTid = 2 AND v2o.IsActive = 1 AND vle.Type = 5 AND vle.IsActive = 1 AND vle.Value IN ('Q3', 'Q4') -- Qualifikationen für 'Unterstützend'
|
||||||
|
) q34 ON q34.EmployeeOid = sr.EmployeeOid
|
||||||
|
-- *** Ende Mapping ***
|
||||||
|
WHERE scat.Billable = 1 AND c2s.ApprovedStartDate <= CURDATE() AND (c2s.ApprovedEndDate >= CURDATE() OR c2s.ApprovedEndDate IS NULL)
|
||||||
|
-- AND sr.StartDate >= ':Von' AND sr.StartDate < ':Bis'
|
||||||
|
GROUP BY p.LastName, p.Firstname, c2s.ApprovedStartDate, c2s.ApprovedEndDate
|
||||||
|
ORDER BY p.LastName;
|
||||||
Reference in New Issue
Block a user