Re[11]: Преобразование типов в MSSQL
От: Chupa_Kabra  
Дата: 22.04.05 11:21
Оценка:
Здравствуйте, 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)


Вашу конструкцию оптимизатор может дооптимизировать, что к чем подсоеденяется можно посмотреть в плане выполнения запроса.
Все хотят хорошо провести время, но время не проведешь !
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.