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

Откуда:
Сообщений: 15
Добрый день!
Сделаи вот такую штуку:

SELECT CONVERT(VARCHAR, (MAX(dbo.VAL(ZajavNum)) + 1)) + '/' + RIGHT(MONTH(GETDATE()), 2) + '/' + RIGHT(YEAR(GETDATE()), 4) FROM qdfOrders

Получается вид вот такой:
1/10/2016
2/10/2016
3/10/2016
4/11/2016 и т.д.

Но задачу решили не полностью(((

Нужно как-то сделать, чтобы если новый месяц, то номер начинался заново с "1"

т.е. чтобы было:
1/10/2016
2/10/2016
3/10/2016
1/11/2016

Если кто подскажет, буду благодарен.

Или же, более простой вариант:

У нас задано в первой части: Максимальное значение +1

А как правильно прописать: Предыдущее значение +1
12 окт 16, 17:41    [19774778]     Ответить | Цитировать Сообщить модератору
 Re: Предыдущее значение +1  [new]
_human
Member

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

https://www.sql.ru/forum/127456/rekomendacii-po-oformleniu-soobshheniy-v-forume
12 окт 16, 17:59    [19774848]     Ответить | Цитировать Сообщить модератору
 Re: Предыдущее значение +1  [new]
Добрый Э - Эх
Guest
Hatab,

последующее/предыдущее значения - это тебе к LEAD/LAG over() прямая дорога.
13 окт 16, 04:08    [19776219]     Ответить | Цитировать Сообщить модератору
 Re: Предыдущее значение +1  [new]
RMagistr2015
Member

Откуда:
Сообщений: 1389
Добрый Э - Эх
Hatab,

последующее/предыдущее значения - это тебе к LEAD/LAG over() прямая дорога.


В 2005-ом я так понимаю это не работает ((( ?
Тут наверное придётся обойтись различными хитросплетениями?
13 окт 16, 06:29    [19776237]     Ответить | Цитировать Сообщить модератору
 Re: Предыдущее значение +1  [new]
Yayaadmin
Guest
Hatab,

Обычная оконная функция Row_Number с секцинированием по месяцу (засуньте запрос в CTE а потом его секционируйте).
Про Lag и Lead вам сказали, если SQL 2008 то их там нет, но можно реализвать также с помошью Row_Number
13 окт 16, 06:32    [19776238]     Ответить | Цитировать Сообщить модератору
 Re: Предыдущее значение +1  [new]
iap
Member

Откуда: Москва
Сообщений: 47105
Yayaadmin
Hatab,

Обычная оконная функция Row_Number с секцинированием по месяцу (засуньте запрос в CTE а потом его секционируйте).
Про Lag и Lead вам сказали, если SQL 2008 то их там нет, но можно реализвать также с помошью Row_Number
При таком подходе могут получаться разные результаты от вызова к вызову
(например, если некоторые записи удаляются).
Так что надо смотреть, какие требования предъявляются.
Если это какой-то номер, который для каждой записи должен остаться неизменным,
то придётся его хранить в таблице, а не вычислять на лету.

Посмотрите ещё это:

Генераторы в MSSQL
13 окт 16, 10:40    [19776809]     Ответить | Цитировать Сообщить модератору
 Re: Предыдущее значение +1  [new]
Hatab
Member

Откуда:
Сообщений: 15
Всем спасибо за наводки. Буду разбираться
13 окт 16, 11:20    [19776953]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить