Этот вопрос обсуждался ранее, но ни один из ответов не касается моей конкретной проблемы, потому что я имею дело с разными предложениями во внутреннем и внешнем выборе. Этот запрос выполняется просто под Sybase, но дает ошибку в заголовке этого сообщения при выполнении в SQL Server. Запрос сложный, но общий контур запроса:
select sum ( t.graduates -
( select sum ( t1.graduates )
from table as t1
where t1.id = t.id and t1.group_code not in ('total', 'others' ) ) )
from table as t
where t.group_code = 'total'
Ниже описывается ситуация, которую я пытаюсь решить:
- все групповые коды представляют собой расы, за исключением "всего" и "других",
- групповой код "total" представляет всех выпускников всех рас
- тем не менее, многолетний раса отсутствует, поэтому число выпускников гонки может не совпадать с общим количеством выпускников
- это недостающие данные - это то, что нужно вычислить
Нужно ли все-таки переписать это, используя производные таблицы или объединения, чтобы получить те же результаты?
Обновление: я создал образцы данных и 3 решения для моей конкретной проблемы (2 под влиянием sgeddes). Тот, который я добавил, включает перемещение коррелированного подзапроса в производную таблицу в предложении FROM. Спасибо за помощь, ребята!