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

Откуда:
Сообщений: 88
Всем привет!
date_ID year_ week_
2012-12-24 2012 53
2012-12-25 2012 53
2012-12-26 2012 53
2012-12-27 2012 53
2012-12-28 2012 53
2012-12-29 2012 53
2012-12-30 2012 53
2012-12-31 2012 54
2013-01-01 2012 1
2013-01-02 2012 1
2013-01-03 2012 1
2013-01-04 2012 1
2013-01-05 2012 1
2013-01-06 2012 1
2013-01-07 2013 2
2013-01-08 2013 2
2013-01-09 2013 2
2013-01-10 2013 2
2013-01-11 2013 2
2013-01-12 2013 2
2013-01-13 2013 2

Мне нужно 1-ую неделю 2013 года пронумеровать как 54, т.к. она началась в 2012 году и была 54.
В общем мне нужен НЕ календарный номер недели (datepart(week...)), а номер той недели, в которую текущая неделя началась(когда был понедельник).
Тоже самое и для года - нужен номер того года, в который текущая неделя началась(когда был понедельник)
SQL Server 2012
Помогите, пожалуйста.
18 сен 13, 16:15    [14855451]     Ответить | Цитировать Сообщить модератору
 Re: Хитрая нумерция недель  [new]
Bosyak
Member

Откуда:
Сообщений: 88
Должно быть:
date_ID year_ week_
2012-12-24 2012 53
2012-12-25 2012 53
2012-12-26 2012 53
2012-12-27 2012 53
2012-12-28 2012 53
2012-12-29 2012 53
2012-12-30 2012 53
2012-12-31 2012 54
2013-01-01 2012 54
2013-01-02 2012 54
2013-01-03 2012 54
2013-01-04 2012 54
2013-01-05 2012 54
2013-01-06 2012 54
2013-01-07 2013 2
2013-01-08 2013 2
2013-01-09 2013 2
2013-01-10 2013 2
2013-01-11 2013 2
2013-01-12 2013 2
2013-01-13 2013 2
18 сен 13, 16:17    [14855465]     Ответить | Цитировать Сообщить модератору
 Re: Хитрая нумерция недель  [new]
Glory
Member

Откуда:
Сообщений: 104751
Bosyak
Помогите, пожалуйста.

Делаете таблицу-календарь, в которой для каждой даты проставляете любой нужный вам номер недели
18 сен 13, 16:18    [14855476]     Ответить | Цитировать Сообщить модератору
 Re: Хитрая нумерция недель  [new]
StarikNavy
Member

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

case when ... then 54

и да, в отдельную таблицу
18 сен 13, 16:30    [14855607]     Ответить | Цитировать Сообщить модератору
 Re: Хитрая нумерция недель  [new]
Bosyak
Member

Откуда:
Сообщений: 88
Glory
Делаете таблицу-календарь, в которой для каждой даты проставляете любой нужный вам номер недели

Вы имеете в виду в ручную?

StarikNavy
В case обрабатывать каждый случай отдельно?


Автоматом растянуть номера недели и года никак нельзя?
18 сен 13, 16:53    [14855759]     Ответить | Цитировать Сообщить модератору
 Re: Хитрая нумерция недель  [new]
Glory
Member

Откуда:
Сообщений: 104751
Bosyak
Glory
Делаете таблицу-календарь, в которой для каждой даты проставляете любой нужный вам номер недели

Вы имеете в виду в ручную?

Можете скриптом


Bosyak
Автоматом растянуть номера недели и года никак нельзя?

Что такое "автоматом" ? Ваша функция вычисления номера недели ?
18 сен 13, 16:57    [14855773]     Ответить | Цитировать Сообщить модератору
 Re: Хитрая нумерция недель  [new]
Bosyak
Member

Откуда:
Сообщений: 88
Glory,
Да, мне нужна функция:
res_week('2012-12-30') возвращает 53;
res_week('2012-12-31') возвращает 54;
res_week('2013-01-01') возвращает 54;
18 сен 13, 17:18    [14855903]     Ответить | Цитировать Сообщить модератору
 Re: Хитрая нумерция недель  [new]
Glory
Member

Откуда:
Сообщений: 104751
Bosyak
Да, мне нужна функция:

Ну так напишите ее тогда
18 сен 13, 17:21    [14855919]     Ответить | Цитировать Сообщить модератору
 Re: Хитрая нумерция недель  [new]
iap
Member

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

может, Вы криво написали номер недели ISO 8601?
18 сен 13, 17:30    [14855995]     Ответить | Цитировать Сообщить модератору
 Re: Хитрая нумерция недель  [new]
Диклевич Александр
Member

Откуда:
Сообщений: 612
что за вопрос?
если нужен номер той недели, в которую текущая неделя началась (когда был понедельник), то естесственно начать решение с поиска понедельника.
Гуглим "get last monday sql server", первая ссылка.
Вот и все, осталось только взять номер недели и год от полученного результата.
18 сен 13, 23:49    [14857234]     Ответить | Цитировать Сообщить модератору
 Re: Хитрая нумерция недель  [new]
Bosyak
Member

Откуда:
Сообщений: 88
Диклевич Александр, то, что надо.
Ступил, не догадался таким образом поставить вопрос гуглу ).
Спасибо, Александр!
19 сен 13, 11:15    [14858143]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить