Я получаю следующее сообщение об ошибке:T-SQL Агрегатная функция подзапрос
Cannot perform an aggregate function on an expression containing an aggregate or a subquery.
С помощью этого кода:.
SELECT
loc.Location
,COUNT(CASE
WHEN hr.SAC in (SELECT [SAC] FROM dbo.[Titles] WHERE [title] = 'XYZ')
THEN 1
ELSE NULL
END) AS XYZ_Trainee_Count
,COUNT(CASE
WHEN hr.SAC in (SELECT [SAC] FROM dbo.[Titles] WHERE [title] = 'ABC')
THEN 1
ELSE NULL
END) AS ABC_Trainee_Count
FROM
dbo.n_HRODS hr INNER JOIN dbo.Locations loc
ON loc.LocationID = hr.LocationID
INNER JOIN dbo.EmpData dat
ON dat.EmpID = hr.EmpID
WHERE dat.Trainee = 1
GROUP BY loc.Location
DBO [Заголовки] представляет собой вид, что объединяет две колонны из двух других таблиц. Я в основном делаю это так, потому что программист передо мной сделал что-то вроде этого:
,COUNT(CASE
WHEN SAC in (lists about 30 items)
THEN 1
ELSE NULL
END)
Очевидно, что я не хочу, чтобы перечислить 30 пунктов в этом случае заявление ... и когда эти элементы изменяются по каким-либо разум через 3 года, то кто будет помнить, чтобы вернуться в этот код и обновил эти пункты? Никто ...
Заранее за вашу помощь.
Большое спасибо за помощь! – blacksaibot