Добрый день. Помогите, пожалуйста, разобраться с запросом. Вывожу остатки за весь период по дням. Первая запись выводится верно, а дальше уже к остальным записям где были движения в начальный остаток прибавляется количество первой записи. Пример: 5 мая был приход 10 штук, расход 4, остаток начальный 0, конечный 6. Следующее движение по этой позиции было 10 мая. Приход 5, расход 2, начальный остаток 6, конечный 9. Еще одно движение было 12 мая. Приход 3, расход 0, начальный остаток 9, конечный 12. Запросом выводится в таком виде:
05.05.2024 Начальный остаток 0, Приход 10, Расход 4, Конечный остаток 6,
06.05.2024 Начальный остаток 6, Приход 0, Расход 0, Конечный остаток 6,
07.05.2024 Начальный остаток 6, Приход 0, Расход 0, Конечный остаток 6,
08.05.2024 Начальный остаток 6, Приход 0, Расход 0, Конечный остаток 6,
09.05.2024 Начальный остаток 6, Приход 0, Расход 0, Конечный остаток 6,
10.05.2024 Начальный остаток 12, Приход 5, Расход 0, Конечный остаток 17,
11.05.2024 Начальный остаток 17, Приход 0, Расход 0, Конечный остаток 17,
12.05.2024 Начальный остаток 23, Приход 3, Расход 0, Конечный остаток 26 и так далее.

Как сделать чтоб вышло так:

05.05.2024 Начальный остаток 0, Приход 10, Расход 4, Конечный остаток 6,
06.05.2024 Начальный остаток 6, Приход 0, Расход 0, Конечный остаток 6,
07.05.2024 Начальный остаток 6, Приход 0, Расход 0, Конечный остаток 6,
08.05.2024 Начальный остаток 6, Приход 0, Расход 0, Конечный остаток 6,
09.05.2024 Начальный остаток 6, Приход 0, Расход 0, Конечный остаток 6,
10.05.2024 Начальный остаток 6, Приход 5, Расход 2, Конечный остаток 9,
11.05.2024 Начальный остаток 9, Приход 0, Расход 0, Конечный остаток 9,
12.05.2024 Начальный остаток 9, Приход 3, Расход 0, Конечный остаток 12?

```1c
    create temporary table dateList as (SEL ECT * FROM generate_series(
    (sel ect min(abs.date) from account_bank_statement abs)::date,
    now(),
    '1 day'
    ));

    create temporary table tempTable as (select
    rc.name "company",
    aj.name "bank",
    resC.name "currency",
    abs.date "date",
    abs.balance_start "balance_start",
    abs.total_entry_encoding,
    abs.balance_end "balance_end",
    CASE
    WHEN total_entry_encoding> 0 THEN total_entry_encoding
    WHEN total_entry_encoding<= 0 THEN 0
    END entry,
    CASE
    WHEN total_entry_encoding< 0 THEN total_entry_encoding
    WHEN total_entry_encoding>= 0 THEN 0
    END outgoing

    fr om
    account_bank_statement abs
    left join
    res_company rc
    on
    abs.company_id = rc.id
    left join
    account_journal aj
    on
    abs.journal_id = aj.id
    left join
    res_currency resC
    on
    aj.currency_id = resC.id
    );

    select
    tempTable.company "Компания",
    tempTable.bank "Банк",
    tempTable.currency "Валюта",
    dateList.generate_series "Дата",
    case when dateList.generate_series = tempTable.date then
    tempTable.balance_start
    else tempTable.balance_end end "Остаток на начало",
    tempTable.balance_end "Остаток на конец",
    CASE
    when dateList.generate_series = tempTable.date then
    tempTable.entry
    else 0 end Приход,
    CASE
    when dateList.generate_series = tempTable.date then
    tempTable.outgoing else 0 end Расход

    fr om
    dateList dateList
    left join
    tempTable tempTable
    on
    tempTable.date <= dateList.generate_series
```
---
А если так?
https://onecompiler.com/postgresql/42er25qpy
---
Спасибо за наводку. Вот вроде бы рабочий вариант, буду пробовать https://onecompiler.com/postgresql/42er62jcb
---
Первая запись выводится верно, а дальше уже к остальным записям где были движения в начальный остаток прибавляется количество первой записи. Пример: 5 мая был приход 10 штук, расход 4, остаток начальный 0, конечный 6. Следующее движение по этой позиции было 10 мая. Приход 5, расход 2, начальный остаток 6, конечный 9. Еще одно движение было 12 мая. Приход 3, расход 0, начальный остаток 9, конечный 12. ошибся, к следующей записи прибавляется количество предыдущей записи (правильное количество). То есть работает сейчас так:
05.05.2024 Начальный остаток 0, Приход 10, Расход 4, Конечный остаток 6,
06.05.2024 Начальный остаток 6, Приход 0, Расход 0, Конечный остаток 6,
07.05.2024 Начальный остаток 6, Приход 0, Расход 0, Конечный остаток 6,
08.05.2024 Начальный остаток 6, Приход 0, Расход 0, Конечный остаток 6,
09.05.2024 Начальный остаток 6, Приход 0, Расход 0, Конечный остаток 6,
10.05.2024 Начальный остаток 12, Приход 5, Расход 0, Конечный остаток 17, //тут начальный остаток должен быть 6, прибавляется он и к начальному и к конечному (с учетом прихода выходит 17)
11.05.2024 Начальный остаток 17, Приход 0, Расход 0, Конечный остаток 17,
12.05.2024 Начальный остаток 26, Приход 3, Расход 0, Конечный остаток 29 и так далее. //тут начальный остаток должен быть 9, он прибавляется к конечному из предыдущей записи, с приходом конечный выходит 29
---
А если так?
https://onecompiler.com/postgresql/42er25qpy
---
проверил, вариант из (4) работает. Спасибо еще раз
---
Спасибо за наводку. Вот вроде бы рабочий вариант, буду пробовать https://onecompiler.com/postgresql/42er62jcb