|
Создание остатков на каждый день 1с/sql
|
|||
---|---|---|---|
#18+
Ребята, уже несколько месяцев борюсь с 1с. Суть проблемы в том, что остатки в 1с собираются как баланс. Существует список операций, где тип 0 и 1 соответственно приход и расход. На каждый день не существует всех операций по всем датам. Есть необходимость собрать остатки на каждый день, исходя из всей истории до этого. На 1 день собирается просто с учетом всех предыдущих операций в стиле - (case when tip = 0 then operation else 0 end) - (case when tip = 1 then operation else 0 end). А вот как создать на каждый день такой подсчет я просто не понимаю, с учетом того, что номенклатура накапливается, но упоминания о ней идет не каждый день, а лишь при проводки операции (расход и приход). Прикрепляю маленький файл с двумя таблица. первая показывает операция,а вторая как это должно показываться на каждый день. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2020, 09:58 |
|
Создание остатков на каждый день 1с/sql
|
|||
---|---|---|---|
#18+
Bereteli, Такой метод обычно называется "накопительный итог". В SQL он реализуется при помощи оконных функций ( sum .. over .. partition by .. order by ) для ускорения запросов результат обычно периодически материализуют (в данном случае остатки) как промежуточный итог (например на конец каждого месяца) Нюанс с флагами приход/расход (скорее всего битовыми для производительности через оптимизацию в памяти занимая меньше места) это просто когда одна операция с плюсом, а другая с минусом (к предыдущему результату) по идее ещё какая-то предварительно оговорённая в компании дополнительная логика из-за того что остаток не может быть негативным (в основном, но иногда пере-оформляют как задолженность) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2020, 11:06 |
|
Создание остатков на каждый день 1с/sql
|
|||
---|---|---|---|
#18+
vikkiv, Как накопительный итог я понимаю как сделать. И про все те функции, что вы написали я тоже вкурсе. Но partition by или же coalesce делают это не в том ключе что мне нужно. партиция дает накопительный по датам, что есть только в таблицах, а коалс идет по этим же датам но накопителньым итогом. А у меня цель собрать остатки на каждый день 1,2,3,4,5,6 и т.к. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2020, 04:14 |
|
|
start [/forum/topic.php?fid=46&fpage=38&tid=1685251]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 293ms |
total: | 433ms |
0 / 0 |