Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / PL/SQL/Oracle12 аналитическая функция LAG / 2 сообщений из 2, страница 1 из 1
21.02.2020, 08:24
    #39929282
imp26
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL/Oracle12 аналитическая функция LAG
Добрый день коллеги!

нужно получить новую графу сумма к оплате с учетом задолжности

В таком виде
DatePay SumPlan SumFact SumToPay 27.09.2019 37380 37380 0 17.10.2019 0 37380 -37380 27.10.2019 37380 0 0 21.11.2019 0 37380 -37380 26.11.2019 37380 0 0 26.12.2019 37380 037380 25.01.2020 37380 0 74760 24.02.2020 37380 0 112140

а получается
DatePay SumPlan SumFact SumToPay 27.09.2019 37380 37380 17.10.2019 0 37380 0 27.10.2019 37380 0 0 21.11.2019 0 37380 37380 26.11.2019 37380 0 0 26.12.2019 37380 0 74760 25.01.2020 37380 0 74760 24.02.2020 37380 0 74760

Исходные данные
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
WITH
  w_data AS
  (
    SELECT to_date('27.09.2019', 'dd.mm.yyyy') as paydate, 37380 as SumPlan, 37380 as SumFact  FROM dual UNION ALL
    SELECT to_date('17.10.2019', 'dd.mm.yyyy') as paydate, 0 as SumPlan, 37380 as SumFact  FROM dual UNION ALL
    SELECT to_date('27.10.2019', 'dd.mm.yyyy') as paydate, 37380 as SumPlan, 0 as SumFact  FROM dual UNION ALL
    SELECT to_date('21.11.2019', 'dd.mm.yyyy') as paydate, 0 as SumPlan, 37380 as SumFact  FROM dual UNION ALL
    SELECT to_date('26.11.2019', 'dd.mm.yyyy') as paydate, 37380 as SumPlan, 0 as SumFact  FROM dual UNION ALL
    SELECT to_date('26.12.2019', 'dd.mm.yyyy') as paydate, 37380 as SumPlan, 0 as SumFact  FROM dual UNION ALL
    SELECT to_date('25.01.2020', 'dd.mm.yyyy') as paydate, 37380 as SumPlan, 0 as SumFact  FROM dual UNION ALL
    SELECT to_date('24.02.2020', 'dd.mm.yyyy') as paydate, 37380 as SumPlan, 0 as SumFact  FROM dual 
  )
  
SELECT 
  paydate,
  sumplan, 
  sumfact, 
  lag(sumplan-sumfact,1) over (order by paydate) as pastBalance, 
  sumplan + lag(sumplan-sumfact,1) over (order by paydate) as Sumtopay
     
  FROM w_data


...
Рейтинг: 0 / 0
21.02.2020, 09:59
    #39929302
Имя пользователя1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL/Oracle12 аналитическая функция LAG
может, так?
Код: sql
1.
sum(sumplan-sumfact) over (order by paydate) as SumToPay,
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / PL/SQL/Oracle12 аналитическая функция LAG / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]