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

Откуда: Минск
Сообщений: 47
Уважаемые форумчане помогите тупому составить запрос

из такой таблицы
table1

Nomer Data1 Data2
1231 18.10.2013 31.10.2013
1231 21.10.2013 31.10.2013
4542 12.11.2013 01.12.2013
4542 05.11.2013 01.12.2013
0549 18.06.2013 22.08.2013

я хочу получить вот такую
table2

Nomer Data1 Data2
1231 21.10.2013 31.10.2013
4542 12.11.2013 01.12.2013
0549 18.06.2013 22.08.2013


если сделать
Select Distinct Nomer, Data1, Data2 from table1
получаю такую же таблицу
Nomer Data1 Data2
1231 18.10.2013 31.10.2013
1231 21.10.2013 31.10.2013
4542 12.11.2013 01.12.2013
4542 05.11.2013 01.12.2013
0549 18.06.2013 22.08.2013

Как сформулировать запрос чтобы значения в колонке Nomer не повторялись и в колонке Data1 при этом максимальная дата из имеющихся, еще бы сделать проверку чтобы data1 не превышала data2.
24 дек 13, 10:30    [15337759]     Ответить | Цитировать Сообщить модератору
 Re: запрос distinct в distinct`e  [new]
Dmitry_8888
Member

Откуда:
Сообщений: 38
select nomer
, max(data1) data1
, data2
from table 1
group by nomer , data2
24 дек 13, 10:47    [15337864]     Ответить | Цитировать Сообщить модератору
 Re: запрос distinct в distinct`e  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
fargutvest,

Select Nomer, max(Data1), Nomer from table1 group by Nomer, Nomer
24 дек 13, 10:47    [15337865]     Ответить | Цитировать Сообщить модератору
 Re: запрос distinct в distinct`e  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2414
fargutvest
сделать проверку чтобы data1 не превышала data2.


where data1 < data2
24 дек 13, 10:59    [15337954]     Ответить | Цитировать Сообщить модератору
 Re: запрос distinct в distinct`e  [new]
fargutvest
Member

Откуда: Минск
Сообщений: 47
Спасибо. Я забыл написать что в колонке Data1 д.б максимальная дата не из всех имеющихся а из дат для конкретного номера
например для строки с номером 1231

Nomer Data1 Data2
1231 18.10.2013 31.10.2013
1231 21.10.2013 31.10.2013
4542 12.11.2013 01.12.2013
4542 05.11.2013 01.12.2013
0549 18.06.2013 22.08.2013

максимальной датой д.б. 21.10.2013 а не 12.11.2013.

пока в голову пришло только такое но не уверен что правильно :
select Distinct Nomer, (Select MAX(Data1) from table1 t1 where t2.Nomer = t1.Nomer  ), Data2 from table1 t2
24 дек 13, 11:29    [15338161]     Ответить | Цитировать Сообщить модератору
 Re: запрос distinct в distinct`e  [new]
sdet
Member

Откуда:
Сообщений: 463
fargutvest,

Вам же написали в 1 ответе?
24 дек 13, 11:36    [15338225]     Ответить | Цитировать Сообщить модератору
 Re: запрос distinct в distinct`e  [new]
zolitude
Member

Откуда:
Сообщений: 142
sdet,

create table #t1
(
	Nomer varchar(4)
	,Data1 datetime
	,Data2 datetime
)

insert into #t1 (Nomer, Data1, Data2) values ('1231', '18.10.2013', '31.10.2013')
insert into #t1 (Nomer, Data1, Data2) values ('1231', '21.10.2013', '31.10.2013')
insert into #t1 (Nomer, Data1, Data2) values ('4542', '12.11.2013', '01.12.2013')
insert into #t1 (Nomer, Data1, Data2) values ('4542', '05.11.2013', '01.12.2013')
insert into #t1 (Nomer, Data1, Data2) values ('0549', '18.06.2013', '22.08.2013')

select Nomer, MAX(Data1) as Data1, Data2 
from #t1 
where Data1<=Data2
group by Nomer, Data2

drop table #t1
26 дек 13, 16:06    [15351122]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить