У меня довольно сложный запрос, который динамически создается и сохраняется в переменной.
Как вторая часть, у меня есть еще один обычный запрос, и я хотел бы сделать внутреннее соединение между ними.
Чтобы сделать это немного проще, приведу небольшой пример, иллюстрирующий мою проблему.
Для этого небольшого примера я использовал базу данных AdventureWorks .
Некоторые запросы создаются динамически
(Да, я знаю, что здесь нет ничего динамического, потому что это всего лишь пример.)
DECLARE @query AS varchar(max) ;
set @query = '
select
HumanResources.Employee.EmployeeID
,HumanResources.Employee.LoginID
,HumanResources.Employee.Title
,HumanResources.EmployeeAddress.AddressID
from
HumanResources.Employee
inner join HumanResources.EmployeeAddress
on HumanResources.Employee.EmployeeID = HumanResources.EmployeeAddress.EmployeeID
;';
EXEC (@query);
Нормальный запрос у меня
select
Person.Address.AddressID
,Person.Address.City
from
Person.Address
Может быть, то, что я хотел бы иметь, но не работает
select
@query.*
,Addresses.City
from
@query as Employees
inner join
(
select
Person.Address.AddressID
,Person.Address.City
from
Person.Address
) as Addresses
on Employees.AddressID = Addresses.AddressID