Я предполагаю, что это возможно, но обширные исследования и бесчисленные часы не окупились.Oracle SQL Reset Running Sum When Zero
Я продаю продукт со склада. Я знаю, когда буду получать отгрузки, и у меня есть ежедневный прогноз продаж (в количестве). Мне нужно рассчитать окончательный инвентарь. Это в основном текущая сумма Inventory - Forecast.
Проблема в том, что, когда у меня заканчивается продукт, на следующий день у меня не будет отрицательной инвентаризации, как подсчитывается текущая сумма. Инвентаризация будет равна нулю, пока я не получу другую отправку. Он может упасть до нуля несколько раз в прогнозе (гораздо больше, чем в примере ниже).
Visual of the dataset (desired column in yellow)
SQL Fiddle for cracking the case
Вот мой фактический запрос:
SELECT FORECAST_DATE, DAYS_OUT, INBOUND_INVENTORY, FORECAST,
ENDING_INVENTORY AS DESIRED_RESULT,
SUM(INBOUND_INVENTORY) OVER (PARTITION BY NULL ORDER BY DAYS_OUT) -
SUM(FORECAST) OVER (PARTITION BY NULL ORDER BY DAYS_OUT) AS ENDING_INVENTORY
FROM MRP
Колонна
Дата: Дата прогноза (ЗАПУСК нг сегодня)
Days Out: Количество дней между сегодняшним днем и датой прогноза
Inbound Inventory: Продукт подходит в (на сегодняшний день, продукт здесь)
Прогноз: Мой планируемое количество продаж
Конечная инвентаризация: Входящая инвентаризация - прогноз + Если вчерашний законный инвентарь < = 0, то 0 еще вчерашний инвентарь завершения.
Пожалуйста, включите запрос и данные в актуальном вопросе. –
ВЫБОР FORECAST_DATE, DAYS_OUT, INBOUND_INVENTORY, FORECAST, ENDING_INVENTORY, как DESIRED_RESULT, SUM (INBOUND_INVENTORY) НАД (PARTITION BY NULL ORDER BY DAYS_OUT) - SUM (ПРОГНОЗ) НАД (PARTITION BY NULL ORDER BY DAYS_OUT) AS ENDING_INVENTORY ОТ MRP –
http://sqlfiddle.com/#!4/72750/10 –