Попробуйте поместить свой оператор case в подзапрос A, затем используйте подзапрос B, чтобы выбрать из A, используя Group By, которая принимает минимум статуса. Таким образом, если есть значение «Active», это будет значение, в противном случае «Inactive» будет значением.
Отредактировано для включения утилиты в группировку / объединение в соответствии с требованиями
SELECT YT.servicelocation_id, YT.fromdate, YT.todate, YT.Utility, B.Status
FROM YourTable YT
LEFT JOIN
(--B subquery
SELECT servicelocation_id, utility, min(Status) as Status
FROM (--A subquery
SELECT servicelocation_id, utility, CASE WHEN todate IS NULL THEN 'Active' ELSE 'Inactive' END as Status
) A
GROUP BY servicelocation_id, utility
) B ON YT.servicelocation_id = B.servicelocation_id and YT.utility = B.utility
--Optional WHERE clause
WHERE YT.YourField = 'YourCriteria'
На основании данных, указанных для servicelocation_id 84061, все они будут иметь статус «Активный», поскольку каждая утилита имеет хотя бы одно значение, где todate равно NULL.