Я кодирую сценарий SQL Server, чтобы сделать перерасчет инвентарного количества конкретного SKU с сегодняшнего дня за последние 365 дней, учитывая фактический запас.В скрипте я делаю много манипуляций с очисткой данных.В конце вывод выводится из временной таблицы, как представлено:
SELECT
DATE,
SUM(CASE WHEN MOV='IN' THEN 1 ELSE 0 END) AS TRANSACTION_IN, --COUNT TRANSACTIONS IN
SUM(CASE WHEN MOV='OUT' THEN 1 ELSE 0 END) AS TRANSACTION_OUT, --COUNT TRANSACTIONS OUT
SUM(CASE WHEN MOV ='IN' THEN QTD ELSE 0 END) AS SUM_IN, --SUM QUANTITY IN
SUM(CASE WHEN MOV ='OUT' THEN QTD ELSE 0 END) AS SUM_OUT --SUM QUANTITY IN
FROM #MOVIMENTS
GROUP BY DT
ORDER BY DT
Ниже можно увидеть пример вывода SQL, показанного:
Пример таблицы
В таблице представлена сумма транзакций, а также количество входов и выходов склада, сгруппированных по дате.Мое намерение состоит в том, чтобы добавить столбец с именем «STOCK», который представляет уровень запаса SKU на текущий день.Для этого у меня есть фактический уровень запасов.Так что мне нужно пересчитать все уровни запасов изо дня в день по всем рядам дат.
В Excel это просто.Я могу поместить фактический уровень в последнюю строку (например, 10) и просто расширить расчет (формула, представленная на рисунке), пока не достигну вершины.В представленном виде (столбец E - это формула, столбец G - это выходные данные):
Перерасчет запасов в Excel
Может ли кто-нибудь помочь мне достичь этого результата в SQL Server?
В Python я нашел решение , использующее Pandas, но я бы предпочел реализовать это вычисление внутри скрипта SQL.