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

Откуда:
Сообщений: 134
Всем привет.

Есть следующая задача, которую, не пойму как решить, может Вы подскажете:
CREATE TABLE [dbo].[batch](
	[ModelName] [nvarchar](100) NOT NULL,
	[BeginDate] [datetime] NOT NULL,
	[EndDate] [datetime] NOT NULL)


Вот данные для теста:
INSERT INTO batch(ModelName, BeginDate, EndDate) values ('560214105', 'Jan  1 2011 12:00AM','Apr  1 2011 12:00AM')
INSERT INTO batch(ModelName, BeginDate, EndDate) values ('560214105', 'Feb  1 2011 12:00AM','May  1 2011 12:00AM')
INSERT INTO batch(ModelName, BeginDate, EndDate) values ('560214105', 'Mar  1 2011 12:00AM','Jun  1 2011 12:00AM')
INSERT INTO batch(ModelName, BeginDate, EndDate) values ('560214105', 'Apr  1 2011 12:00AM','Jul  1 2011 12:00AM')
INSERT INTO batch(ModelName, BeginDate, EndDate) values ('560214105', 'May  1 2011 12:00AM','Aug  1 2011 12:00AM')
INSERT INTO batch(ModelName, BeginDate, EndDate) values ('560214105', 'Jun  1 2011 12:00AM','Sep  1 2011 12:00AM')
INSERT INTO batch(ModelName, BeginDate, EndDate) values ('560214105', 'Jul  1 2011 12:00AM','Oct  1 2011 12:00AM')
INSERT INTO batch(ModelName, BeginDate, EndDate) values ('560214105', 'Aug  1 2011 12:00AM','Nov  1 2011 12:00AM')
INSERT INTO batch(ModelName, BeginDate, EndDate) values ('564232321', 'Jan  1 2011 12:00AM','Apr  1 2011 12:00AM')
INSERT INTO batch(ModelName, BeginDate, EndDate) values ('564232321', 'Apr  1 2011 12:00AM','Jul  1 2011 12:00AM')
INSERT INTO batch(ModelName, BeginDate, EndDate) values ('564232321', 'May  1 2011 12:00AM','Aug  1 2011 12:00AM')
INSERT INTO batch(ModelName, BeginDate, EndDate) values ('564232321', 'Jun  1 2011 12:00AM','Sep  1 2011 12:00AM')
INSERT INTO batch(ModelName, BeginDate, EndDate) values ('564232321', 'Jul  1 2011 12:00AM','Oct  1 2011 12:00AM')


Есть некий интервал, допустим 3 месяца, и с этим интервалом должны выбираться данные уникальные по ModelName.Тоесть, в итоге мы должны получить приблизительно такой набор данных:
560214105	2011-01-01 00:00:00.000	2011-04-01 00:00:00.000
560214105	2011-04-01 00:00:00.000	2011-07-01 00:00:00.000
560214105	2011-07-01 00:00:00.000	2011-10-01 00:00:00.000
564232321	2011-01-01 00:00:00.000	2011-04-01 00:00:00.000
564232321	2011-04-01 00:00:00.000	2011-07-01 00:00:00.000
564232321	2011-07-01 00:00:00.000	2011-10-01 00:00:00.000


Как написать запрос, который делает такую выборку?
Заранее благодарен. А то у меня что-то мыслей нету.
19 мар 12, 17:33    [12275811]     Ответить | Цитировать Сообщить модератору
 Re: Выбор уникальных записей из интервала  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Ciget,

меня смущает слово "приблизительно".
Скажите точный алгоритм формирования резалтсета.
19 мар 12, 17:42    [12275931]     Ответить | Цитировать Сообщить модератору
 Re: Выбор уникальных записей из интервала  [new]
qwerty112
Guest
Ciget,

select * from batch
where	datediff(m,BeginDate,EndDate)=3
	and	month(BeginDate)%3=1
19 мар 12, 17:43    [12275944]     Ответить | Цитировать Сообщить модератору
 Re: Выбор уникальных записей из интервала  [new]
а откуда
Guest
Ciget
А то у меня что-то мыслей нету.

а откуда им взяться?
начните с начала. с упражнений про основы t-sql.
19 мар 12, 17:50    [12276027]     Ответить | Цитировать Сообщить модератору
 Re: Выбор уникальных записей из интервала  [new]
Ciget
Member

Откуда:
Сообщений: 134
qwerty112
Ciget,

select * from batch
where	datediff(m,BeginDate,EndDate)=3
	and	month(BeginDate)%3=1


Точно, спасибо большое, уже голова ей Богу тупит.
19 мар 12, 18:05    [12276178]     Ответить | Цитировать Сообщить модератору
 Re: Выбор уникальных записей из интервала  [new]
qwerty112
Guest
Ciget
qwerty112
Ciget,

select * from batch
where	datediff(m,BeginDate,EndDate)=3
	and	month(BeginDate)%3=1


Точно, спасибо большое, уже голова ей Богу тупит.

чесно говоря, там, в конце должен был быть смайлик - т.к. - вопроса-то - не было ... :)
...нуу, подошло - так подошло
19 мар 12, 18:08    [12276203]     Ответить | Цитировать Сообщить модератору
 Re: Выбор уникальных записей из интервала  [new]
Ciget
Member

Откуда:
Сообщений: 134
qwerty112
Ciget
пропущено...


Точно, спасибо большое, уже голова ей Богу тупит.

чесно говоря, там, в конце должен был быть смайлик - т.к. - вопроса-то - не было ... :)
...нуу, подошло - так подошло


Все, ок натолкнуло на мысль.
20 мар 12, 01:39    [12278488]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить