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

Откуда: урал
Сообщений: 2850
Предположим есть таблица

declare @t table(d datetime, number int)
insert into @t values('1/1/2013 8:45', 5)
insert into @t values('1/1/2013 8:55', 7)
insert into @t values('1/1/2013 12:23', 3)
insert into @t values('1/2/2013 8:55', 2)


требуется разбить все это на временные интервалы по полчаса в рабочее время и 1 интервал в нерабочее, где подсчитать количество номеров в каждом получившемся интервале, типа такого:

Старт                 Финиш           Количество
'1/1/2013 8:00'  '1/1/2013 8:30'       0
'1/1/2013 8:30'  '1/1/2013 9:00'       12
'1/1/2013 9:00'  '1/1/2013 9:30'       0
...
'1/2/2013 8:00'  '1/1/2013 8:30'       0
'1/2/2013 8:30'  '1/1/2013 9:00'       2



Имеется-ли возможность как-нибудь сгенерировать все эти строки без применения циклов или курсоров?
11 сен 13, 09:30    [14824209]     Ответить | Цитировать Сообщить модератору
 Re: Как разбить время на интервалы  [new]
Glory
Member

Откуда:
Сообщений: 104751
stenford
Имеется-ли возможность как-нибудь сгенерировать все эти строки без применения циклов или курсоров?

В сутках 24 часа или 48 получасов
Т.е. нужна вспомогательная таблица из 48 записей
11 сен 13, 09:43    [14824284]     Ответить | Цитировать Сообщить модератору
 Re: Как разбить время на интервалы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
Glory
stenford
Имеется-ли возможность как-нибудь сгенерировать все эти строки без применения циклов или курсоров?

В сутках 24 часа или 48 получасов
Т.е. нужна вспомогательная таблица из 48 записей
Дополню - нужна вспомогательная таблица из 17 записей - 16 интервалов для нерабочего времени + 1 интервал на оставшееся.
11 сен 13, 09:50    [14824317]     Ответить | Цитировать Сообщить модератору
 Re: Как разбить время на интервалы  [new]
Glory
Member

Откуда:
Сообщений: 104751
alexeyvg
Дополню - нужна вспомогательная таблица из 17 записей - 16 интервалов для нерабочего времени + 1 интервал на оставшееся.

По моему равные интервалы с признак рабочий/нерабочий лучше, чем неравные интервалы
Потому что группировать легче, чем разбивать
11 сен 13, 09:54    [14824337]     Ответить | Цитировать Сообщить модератору
 Re: Как разбить время на интервалы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
Glory
alexeyvg
Дополню - нужна вспомогательная таблица из 17 записей - 16 интервалов для нерабочего времени + 1 интервал на оставшееся.

По моему равные интервалы с признак рабочий/нерабочий лучше, чем неравные интервалы
Потому что группировать легче, чем разбивать
А, с признаками да, наверное лучше...
11 сен 13, 09:59    [14824354]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить