Как обновить текущий баланс за один выстрел?
У меня есть временная таблица, давайте назовем это #invoices, определяемый как
create table (id int identity(1, 1), billed money, credited money, balance money)
у меня есть следующие данные в нем
Billed Credited
140.00
20.00
60.00
20.00
-20.00
Я хотел бы обновить столбец баланса с текущим балансом. так что столбец Баланс обновляется правильно. Баланс в основном, Счета-фактуры - зачислен, но должен учитывать предыдущий ряд.
Так что в моем примере баланс будет таким:
Billed Credited Balance
140.00 140.00
20.00 160.00
60.00 100.00
20.00 80.00
-20.00 -100.00
Есть ли способ сделать это, не просматривая строки и сохраняя текущий баланс? В основном я хочу обновить столбец Баланс на основе набора.
2 ответа
Существуют основанные на множестве способы вычисления промежуточных итогов в SQL Server, однако в текущих версиях SQL Server решение на основе курсора часто оказывается быстрее.
Адам Мачаник написал отличную статью об этом здесь.
Ответ триггеров. Я использую их, и это прекрасно работает. У меня нет точно ваших настроек (это немного странно, если можно так сказать), но в целом они являются правильным подходом здесь. Вы должны быть внимательны к порядку, но кроме этого, все должно быть в порядке.