Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не могу составить запрос ... (+)  [new]
Рустам_
Member

Откуда: Екатеринбург
Сообщений: 30
create table #t (P Char(8), N Char(8), Num int, ID int)
insert into #t values ('ivan', 'burda', 48, 1)
insert into #t values ('ivan', 'burda', 47, 2)
insert into #t values ('ivan', 'burda', 43, 3)
insert into #t values ('petr', 'burda', 48, 1)
insert into #t values ('petr', 'burda', 46, 3)
insert into #t values ('petr', 'burda', 45, 4)
insert into #t values ('sidor', 'burda', 50, 1)
insert into #t values ('sidor', 'burda', 49, 2)
insert into #t values ('sidor', 'burda', 48, 3)
insert into #t values ('sidor', 'burda', 45, 4)

Требуется получить данные по 47 номеру(Num) по всем клиентам(P), если клиент не брал 47 номер нужно взять предыдущий:

|P |N |Num|
|ivan |burda |47
|petr |burda |46
|sidor|burda |45

Спасибо!
6 дек 04, 16:34    [1160856]     Ответить | Цитировать Сообщить модератору
 Re: Не могу составить запрос ... (+)  [new]
Smirnov Anton
Member

Откуда: Н.Новгород
Сообщений: 3220
select p,max(num) from #t
where num<=47
group by p
6 дек 04, 16:37    [1160869]     Ответить | Цитировать Сообщить модератору
 Re: Не могу составить запрос ... (+)  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2423
select a.* from #t a inner join (
select p,max(num) as num from #t where num<=47 group by p
) b on a.p=b.p and a.num=b.num
6 дек 04, 18:02    [1161222]     Ответить | Цитировать Сообщить модератору
 Re: Не могу составить запрос ... (+)  [new]
Smirnov Anton
Member

Откуда: Н.Новгород
Сообщений: 3220
а по логике наверное так
select p,N,max(num) from #t
where num<=47 --если надо and N='burda'
group by p,N
:-)
Если я правильно понимаю - ivan читает 'burda'(BurdaModen), а что значит абстрактный №журнала(без названия)
Ж-)
6 дек 04, 18:12    [1161245]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить