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

Откуда:
Сообщений: 253
Помогите пожалуйста как прописать код , выводяший предыдущую дату для данной транзакции (prev_time) , например у 1-ой транзакции нет предыдущего у него NULL , у 2-го предыдущая 2014-12-01 23:55:55 дата и т. д.

P.S. Интересует только столбец prev_time

Заранее благодарен !


trx_id | trx_time | prev_time
---------------------------------------------------------------
556677 | 2014-12-01 23:55:55 |
556678 | 2014-12-01 23:55:59 | 2014-12-01 23:55:55
556679 | 2014-12-02 01:00:00 | 2014-12-01 23:55:59
556682 | 2014-12-02 02:20:00 |
556683 | 2014-12-02 02:20:02 | 2014-12-02 02:20:00
556684 | 2014-12-02 03:20:00 | 2014-12-02 02:20:02
556685 | 2014-12-02 03:22:00 | 2014-12-02 03:20:00
26 июл 17, 00:28    [20675041]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста  [new]
Добрый Э - Эх
Guest
Goofy122,

Lead/lag если версия сервера позволяет
Apply top1 иначе
26 июл 17, 03:47    [20675107]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста  [new]
Goofy122
Member

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

Lead/lag если версия сервера позволяет
Apply top1 иначе



а как прописать сможете написать скрипт пожалуйста
26 июл 17, 07:08    [20675179]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста  [new]
Goofy122
Member

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

Lead/lag если версия сервера позволяет
Apply top1 иначе



а как прописать сможете написать скрипт пожалуйста



Версия 2014 MS SQL
26 июл 17, 07:09    [20675180]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста  [new]
aleksrov
Member

Откуда:
Сообщений: 948
Goofy122
Goofy122
пропущено...



а как прописать сможете написать скрипт пожалуйста



Версия 2014 MS SQL


Видимо гугл забанен.
https://blog.sqlauthority.com/2011/11/15/sql-server-introduction-to-lead-and-lag-analytic-functions-introduced-in-sql-server-2012/
26 июл 17, 08:01    [20675210]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста  [new]
Goofy122
Member

Откуда:
Сообщений: 253
aleksrov
Goofy122
пропущено...



Версия 2014 MS SQL


Видимо гугл забанен.
https://blog.sqlauthority.com/2011/11/15/sql-server-introduction-to-lead-and-lag-analytic-functions-introduced-in-sql-server-2012/


Спасибо

А как подсчитать точнее при помощи какой функции , чтобы вычитывалось последовательно от предыдущей функции

80 | 80
-10 | 70
-40 | 30
-70 | -40
26 июл 17, 08:19    [20675233]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста  [new]
Goofy122
Member

Откуда:
Сообщений: 253
Goofy122
aleksrov
пропущено...


Видимо гугл забанен.
https://blog.sqlauthority.com/2011/11/15/sql-server-introduction-to-lead-and-lag-analytic-functions-introduced-in-sql-server-2012/


Спасибо

А как подсчитать точнее при помощи какой функции , чтобы вычитывалось последовательно от предыдущей функции

80 | 80
-10 | 70
-40 | 30
-70 | -40


(-70)+(-40)+(-10)+80 = -40
26 июл 17, 08:22    [20675240]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Goofy122,

SUM() OVER()
26 июл 17, 08:32    [20675267]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста  [new]
Goofy122
Member

Откуда:
Сообщений: 253
TaPaK
Goofy122,

SUM() OVER()



SUM (Trx_Amount) OVER (partition by CUSTOMERID ORDER BY CUSTOMERID ) Prev_amount ,

SUM() OVER() результата выдает таким

TRX_Id | Trx_Amount | Prev_amount
556677 -5 35
556678 10 35
556679 30 35
556682 80 -40
556683 -10 -40
556684 -40 -40
556685 -70 -40
26 июл 17, 08:36    [20675276]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Goofy122,

там ещё продолжение в OVER ROWS UNBOUNDED и тд
26 июл 17, 08:39    [20675282]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста  [new]
Goofy122
Member

Откуда:
Сообщений: 253
TaPaK
Goofy122,

там ещё продолжение в OVER ROWS UNBOUNDED и тд


можете скинуть примерный скрипт на OVER ROWS UNBOUNDED заранее благодарен ?
26 июл 17, 08:40    [20675286]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста  [new]
Goofy122
Member

Откуда:
Сообщений: 253
TaPaK
Goofy122,

там ещё продолжение в OVER ROWS UNBOUNDED и тд



все разобрался спасибо большое прописал так

SUM(Trx_Amount) OVER (PARTITION BY CUSTOMERID ORDER BY Trx_Id ROWS UNBOUNDED PRECEDING)
26 июл 17, 08:52    [20675325]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить