У меня есть запрос:
select u1.LastName, u1.FirstName,
sum(case when not exists(select 1
from CaseHistory ch2
where ch1.caseid = ch2.caseid
and ch2.ActiveDate = somedate
ch2.ID in (0, 2, 41))
then 1
else 0
end) as WorkedRecord
from sometables
Этот запрос работает в Oracle, но теперь мы переходим на SQL Server. В SQL Server мы получаем следующую ошибку:
Ошибка 130: Невозможно выполнить агрегатную функцию для выражения, содержащего агрегат или
подзапрос.
Вот мое решение:
В итоге я сделал линейный просмотр и затем суммировал это. Я сделал что-то вроде этого:
выберите сумму (a.WorkedRecord)
от
(Выбрать
(случай, когда не существует (выберите 1
из истории дела ch2 ...
затем 1 еще 0 конец) как WorkedRecord)
от Sometables)
Кажется, это работает.