Здравствуйте, A_l_e_x_e_y, Вы писали:
A__>Здравствуйте, Chupa_Kabra, Вы писали:
C_K>>Структуру таблиц в студию
A__>Я опущу поля, которые не участвуют в запросе.
A__>A__>Классификатор
A__>Код int
A__>Иерархия nvarchar
A__>Объекты НПО
A__>Код int
A__>Название nvarchar
A__>Данные
A__>Код int
A__>Код атрибута int //свяано c Классификатор.Код
A__>Код объекта int //связано с [Объекты НПО].[Код]
A__>Значение nvarchar
A__>
Попробуйте, должно сработать.
declare @tmp table(Value int primary key clustered)
insert into @tmp
(Value)
SELECT distinct CONVERT(int, [Значение]) FROM [Данные]
WHERE [Код объекта] = 30 AND [Код атрибута] IN (SELECT [Код] FROM [Классификатор] WHERE [Иерархия] LIKE '0202__01')
SELECT *
FROM [Объекты НПО]
WHERE [Объекты НПО].[Код] = 30 OR
[Объекты НПО].[Код] IN (select Value from @tmp)
Вашу конструкцию оптимизатор может дооптимизировать, что к чем подсоеденяется можно посмотреть в плане выполнения запроса.