Используйте CTE и делайте то, что по сути является самостоятельным соединением
;with NCAAstatsToUpdate(
SELECT AccountId
FROM NCAAstats n
INNER JOIN College_Translator ct
ON ct.AccountID = n.AccountId
GROUP BY FirstName, LastName, n.AccountId, ct.school_name,
CalendarYear, StatTypeId
HAVING COUNT(*) >1 )
UPDATE NCAAstats
SET IsValid=0
FROM NCAAstats n
inner join NCAAstatsToUpdate u
on n.AccountId = u.AccountId
Или, что еще лучше, используйте функции управления окнами.
;with NCStats as(
Select distinct row_number() over (partition by FirstName, LastName, n.AccountId, ct.school_name,
CalendarYear, StatTypeId order by n.accountId) rw, n.*
FROM NCAAstats n
INNER JOIN College_Translator ct
ON ct.AccountID = n.AccountId
)
Update NCStats
Set IsValid=0
Where rw>1
Обратите внимание, что секунда не обновляет "первая "запись недействительна и предполагает, что существует отношение 1: 1 между NCAAstats и College_Translator.