powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Создание остатков на каждый день 1с/sql
4 сообщений из 4, страница 1 из 1
Создание остатков на каждый день 1с/sql
    #40030724
Bereteli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, уже несколько месяцев борюсь с 1с.
Суть проблемы в том, что остатки в 1с собираются как баланс.
Существует список операций, где тип 0 и 1 соответственно приход и расход. На каждый день не существует всех операций по всем датам.
Есть необходимость собрать остатки на каждый день, исходя из всей истории до этого. На 1 день собирается просто с учетом всех предыдущих операций в стиле -
(case when tip = 0 then operation else 0 end) - (case when tip = 1 then operation else 0 end).
А вот как создать на каждый день такой подсчет я просто не понимаю, с учетом того, что номенклатура накапливается, но упоминания о ней идет не каждый день, а лишь при проводки операции (расход и приход).

Прикрепляю маленький файл с двумя таблица. первая показывает операция,а вторая как это должно показываться на каждый день.
...
Рейтинг: 0 / 0
Создание остатков на каждый день 1с/sql
    #40030741
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bereteli,

Такой метод обычно называется "накопительный итог".
В SQL он реализуется при помощи оконных функций ( sum .. over .. partition by .. order by )

для ускорения запросов результат обычно периодически материализуют (в данном случае остатки)
как промежуточный итог (например на конец каждого месяца)

Нюанс с флагами приход/расход
(скорее всего битовыми для производительности через оптимизацию в памяти занимая меньше места)
это просто когда одна операция с плюсом, а другая с минусом (к предыдущему результату)
по идее ещё какая-то предварительно оговорённая в компании дополнительная логика из-за того что остаток не может быть негативным
(в основном, но иногда пере-оформляют как задолженность)
...
Рейтинг: 0 / 0
Создание остатков на каждый день 1с/sql
    #40031316
Bereteli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vikkiv,

Как накопительный итог я понимаю как сделать. И про все те функции, что вы написали я тоже вкурсе. Но partition by или же coalesce делают это не в том ключе что мне нужно. партиция дает накопительный по датам, что есть только в таблицах, а коалс идет по этим же датам но накопителньым итогом. А у меня цель собрать остатки на каждый день 1,2,3,4,5,6 и т.к.
...
Рейтинг: 0 / 0
Создание остатков на каждый день 1с/sql
    #40031328
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bereteli,

Считаете остатки за первый день,
за следующий день берете остатки за предыдущий день и прибавляете к ним движение
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Создание остатков на каждый день 1с/sql
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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