I am trying to join a max date in a subquery but I get an error. Im using SQL server
SELECT Headcount.[Snapshot Date]
, Headcount.[ID]
, Assessment.[Assessment Date]
, Assessment.[Code]
FROM Headcount INNER JOIN Assessment ON Assessment.[ID] = Headcount.[ID]
WHERE Assessment.[Assessment Date] =
(SELECT MAX(CAST(Assessment.[Assessment Date] as datetime))
FROM Assessmnet AS Z
WHERE Z.[ID] = Assessment.[ID]
AND Assessment.[Assessment Date] <= Headcount.[Snapshot Date]
)
But I get an error:
An aggregate may not appear in the WHERE clause unless it is in a subquery contained in a HAVING clause or a select list, and the column being aggregated is an outer reference.