Я не знаю этикета здесь - это комментарий, а не предлагаемый ответ, но я хочу, чтобы людям было проще комментировать мой комментарий ... при необходимости понижать голос ... Я не хочу просто начать новый вопрос, так как я хочу, чтобы ОП это увидело.
У вас есть несколько альтернатив, но никто не говорил о том, почему первый запрос не работал, и не отвечал, как использовать результаты одного запроса в другом.
Почему это не сработало: если таблица «reqTable» существовала и имела столбец с именем «id» во время оценки вашего запроса, SQL Server мог бы связать имя. Вы можете использовать «eval» для помещения в sql, который будет действителен при запуске. Для этой проблемы, которая была бы неоправданно сложной, но такие вещи должны возникнуть, я не знаю, является ли это обычным инструментом в наборе людей, которые пишут много хранимых процедур.
В SQL Server 2005 и 2008 есть функция под названием «CTE», о которой вам следует прочитать, которая отвечает на общий вопрос «Как использовать результаты одного запроса в другом запросе». Они не делают ничего, чего не могут делать подзапросы, но в большинстве случаев их легче писать.