Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите новичку с запросом  [new]
Пётр
Guest
Требуется получить все строки из таблицы у которых значения поля Weight отличаются друг от друга на допустим 5 кг.

ID Name Weight
-- ----- -------
1 Name1 64
2 Name2 70
3 Name3 83
4 Name4 105
5 Name5 71
6 Name6 97

Результатом запроса должно быть:

ID Name Weight
-- ----- -------
2 Name1 70
5 Name5 71
24 июл 03, 09:52    [273666]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку с запросом  [new]
Fazan
Guest
Таких групп может быть много, однако..
Вытащить их можно так примерно:

create table #temp(
[ID] int identity,
[Name] varchar(16),
[Weight] int not null default(0),
primary key clustered([ID])
)

insert into #temp([Name], [Weight]) values('Name1', 64)
insert into #temp([Name], [Weight]) values('Name2', 70)
insert into #temp([Name], [Weight]) values('Name3', 83)
insert into #temp([Name], [Weight]) values('Name4', 105)
insert into #temp([Name], [Weight]) values('Name5', 71)
insert into #temp([Name], [Weight]) values('Name6', 97)

declare @Delta int
set @Delta = 5

select *
from #temp t1
inner join #temp t2 on (t1.[ID] <> t2.[ID])
where
(abs(t1.[Weight] - t2.[Weight]) <= @Delta)
order by t1.[Weight], t2.[Weight]


drop table #temp
24 июл 03, 10:16    [273693]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку с запросом  [new]
Пётр
Guest
Да, групп много, но с ними уже разберусь.
Большое спасибо!
24 июл 03, 11:24    [273803]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить