Я пишу скрипт, который будет работать на SQL Server 2014.
У меня есть таблица транзакций, записывающая переводы из одного рабочего места в другое.Упрощенная таблица приведена ниже:
DECLARE @transactionTable TABLE (wono varchar(10),transferDate date
,fromWC varchar(10),toWC varchar(10),qty float)
INSERT INTO @transactionTable
SELECT '0000000123','5/10/2018','STAG','PP-B',10
UNION
SELECT '0000000123','5/11/2018','PP-B','PP-T',5
UNION
SELECT '0000000123','5/11/2018','PP-T','TEST',3
UNION
SELECT '0000000123','5/12/2018','PP-B','PP-T',5
UNION
SELECT '0000000123','5/12/2018','PP-T','TEST',5
UNION
SELECT '0000000123','5/13/2018','PP-T','TEST',2
UNION
SELECT '0000000123','5/13/2018','TEST','FGI',8
UNION
SELECT '0000000123','5/14/2018','TEST','FGI',2
SELECT *,
fromTotal = -SUM(qty) OVER(PARTITION BY fromWC ORDER BY wono, transferdate, fromWC),
toTotal = SUM(qty) OVER(PARTITION BY toWC ORDER BY wono, transferdate, toWC)
FROM @transactionTable
ORDER BY wono, transferDate, fromWC
Я хочу получить текущий баланс fromWC и toWC после каждой транзакции.
Учитывая приведенные выше записи, конечный результат должен быть следующим:

Я считаю, что можно использовать SUM(qty) OVER(PARTITION BY...
, но я не уверен, как написать заявление.Когда я пытаюсь получить увеличение и уменьшение, каждая строка всегда приводит к 0.
Как мне написать оператор SUM
для достижения желаемых результатов?
ОБНОВЛЕНИЕ

На этом рисунке показана каждая транзакция, итоговое количество WC и выделены соответствующие рабочие центры from
и to
для каждой транзакции.
Например, глядя на вторую запись 5/11, 3 были перенесены из PP-T в TEST.После транзакции было 5 в PP-B, 2 в PP-T и 3 в TEST.