Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 22 additions & 11 deletions onprc_ehr/resources/queries/study/demographicsAssignedVet.sql
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,31 @@ study.demographicsAssignedVet
result in additional rows per animal if they're distinct.
*/

SELECT
WITH MinRule AS (
SELECT Id, MIN(matchedRule) AS MinMatchedRule
FROM vetAssignment_filter
GROUP BY Id
),
VetCaseData AS (
SELECT
Id,
AssignedVet,
GROUP_CONCAT(DISTINCT ActiveMasterProblems, ', ') AS GroupedMasterProblems -- DISTINCT prevents duplicate master problems if dual-assigned
FROM vetAssignment_filter
WHERE matchedRule = 0
GROUP BY Id, AssignedVet
)
SELECT DISTINCT -- DISTINCT prevents duplicate rows
f.Id,
f.AssignedVet,
f.AssignmentType,
GROUP_CONCAT(
CASE WHEN f.matchedRule = 0 THEN f.ActiveMasterProblems ELSE NULL END,
', '
) AS MasterProblems,
v.GroupedMasterProblems AS MasterProblems,
f.Area,
f.Room
FROM vetAssignment_filter f
WHERE f.matchedRule = (
SELECT min(matchedRule)
FROM vetAssignment_filter sub
WHERE sub.Id = f.Id
)
GROUP BY f.Id, f.AssignedVet, f.AssignmentType, f.Area, f.Room
JOIN MinRule m
ON m.Id = f.Id
AND m.MinMatchedRule = f.matchedRule
LEFT JOIN VetCaseData v
ON v.Id = f.Id
AND v.AssignedVet = f.AssignedVet