Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
palladin600 Member Откуда: Minsk Power Station Сообщений: 514 |
Здравствуйте! Просьба помочь составить запрос для отбора записей с аналогичными свойствами относительно имеющегося известного. Т.е. есть куча шкафов, некоторые имеют схожие размеры. Мне известен ID одного шкафа, как на его базе получить остальные шкафы с такими же свойствами? Вот пример: declare @Subjects table(name varchar(10), id int) insert into @Subjects(name, id) select 'Шкаф1', 1 union all select 'Шкаф2', 2 union all select 'Шкаф3', 3 union all select 'Шкаф4', 4 declare @Sizes table(ID int, Width int, Height int, [Length] int) insert into @Sizes(ID, Width, Height, [Length]) select 1, 100, 170, 200 union all select 2, 120, 170, 200 union all select 3, 100, 170, 200 union all select 4, 130, 200, 200 union all select 5, 100, 170, 200 //получаю определённый шкаф, зная его ID SELECT s.name, sz.Width, sz.Height, sz.[Length] FROM @Subjects s INNER JOIN @Sizes sz ON s.ID = sz.ID WHERE s.ID = 1 Шкаф1 100 170 200 //теперь мне надо получить аналогичные по размеру и другие шкафы со схожими размерами, что и у ID=1, в итоге результат такой должен получиться: Шкаф3 100 170 200 Шкаф5 100 170 200 |
28 сен 17, 22:01 [20830267] Ответить | Цитировать Сообщить модератору |
palladin600 Member Откуда: Minsk Power Station Сообщений: 514 |
Sorry, в таблице @Subjects не дописал один шкаф..... select 'Шкаф4', 4 union all select 'Шкаф5', 5 |
28 сен 17, 22:19 [20830311] Ответить | Цитировать Сообщить модератору |
Дедушка Member Откуда: Город трёх революций Сообщений: 5114 |
select s.name, sz.Width, sz.Height, sz.[Length] from @Sizes sz inner join ( select sz2.Width, sz2.Height, sz2.[Length] from @Sizes sz2 where sz2.ID = 1 ) t on t.Width = sz.Width and t.Height = sz.Height and t.[Length] = sz.[Length] inner join @Subjects s on s.ID = sz.ID |
28 сен 17, 23:18 [20830459] Ответить | Цитировать Сообщить модератору |
palladin600 Member Откуда: Minsk Power Station Сообщений: 514 |
Дедушка, выдаёт 3 записи, в т.ч. и с ID=1 Шкаф1 100 170 200не по заданию. Чтобы исключить ID=1, достаточно в конце вашего запроса указать where s.id <> 1? так правильно? |
28 сен 17, 23:57 [20830534] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |