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

Откуда:
Сообщений: 92
Коллеги добрый день.
Подскажите пожалуйста
Есть таблица (20 полей примерно)
Одно из полей Start_date другое End_date
Например Start_date= 05/06/2010
End_date 04/07/2010
Нужно Вместо 1 записи получить 30
Тоесть 1 запись будет со Start_date=05/06/2010 и End_Date 06/06/2010
2 запись будет со Start_date=06/06/2010 и End_Date 07/06/2010
И так далее.
20 май 13, 15:39    [14321844]     Ответить | Цитировать Сообщить модератору
 Re: Месяц по дням  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
Создайте в БД таблицу-календарь
20 май 13, 15:45    [14321892]     Ответить | Цитировать Сообщить модератору
 Re: Месяц по дням  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1887
declare @t table(id int, Start_date datetime, End_date datetime)
insert into @t values(1,'20130101','20130105'),(2,'20130201','20130204')

;with buff (id,Start_date,End_date) as 
(select id,Start_date,dateadd(dd,1,Start_date) as End_date from @t
union all 
select  b.id, b.End_date as start_date, dateadd(dd,1,b.End_date) as End_date
from buff b
join @t t on t.id = b.id
and t.End_date >= b.End_date
) select * from buff order by id,Start_date
21 май 13, 07:02    [14324252]     Ответить | Цитировать Сообщить модератору
 Re: Месяц по дням  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2415
LexusR
and t.End_date >= b.End_date


and t.End_date > b.End_date

(судя по всему)
22 май 13, 16:08    [14334036]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить