Как обновить текущий баланс за один выстрел? - PullRequest
0 голосов
/ 02 октября 2009

У меня есть временная таблица, назовем ее #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

Я хотел бы обновить столбец balance с текущим балансом. так что столбец Баланс обновляется правильно. Сальдо в основном, Счета - зачислены, но должны учитывать предыдущую строку.

Так что в моем примере баланс будет таким:

Billed   Credited  Balance
140.00              140.00
20.00               160.00
          60.00     100.00
          20.00      80.00
         -20.00    -100.00

Есть ли способ сделать это, не просматривая строки и сохраняя текущий баланс? В основном я хочу обновить столбец Баланс на основе набора.

Ответы [ 2 ]

3 голосов
/ 02 октября 2009

Существует набор-основанных способов вычисления промежуточных итогов в SQL Server, однако в текущих версиях SQL Server решение на основе курсора часто оказывается быстрее.

Адам Маханик написал большую статью об этом здесь .

0 голосов
/ 02 октября 2009

Ответ - триггеры. Я использую их, и это прекрасно работает. У меня нет точно ваших настроек (это немного странно, если можно так сказать), но в целом они являются правильным подходом здесь. Вы должны быть внимательны к порядку, но кроме этого, все должно быть в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...