SELECT
transactionid,
transactiondatetime,
amount,
(SELECT SUM(amount)
FROM dbo.bankaccount as D1
WHERE D1.transactiondatetime <= D0.transactiondatetime) AS balance
FROM dbo.bankaccount AS D0
列表B
这样就得到了以下的结果集:
1 2006-11-03 02:33:42.34010000.00 10000.00
2 2006-11-03 02:34:50.467-500.00 9500.00
3 2006-11-03 02:35:04.857250.00 9750.00
4 2006-11-03 02:42:19.763-124.25 9625.75
如这个例子所示,只要你理解了要求,就可以很容易地建立累计值。所示的例子假设表格中只包括一个账户,但是要处理多个账户也很简单。添加一个BankAccountNumber 列和一个指定利息数量的WHERE谓词即可。
你也可以把这个例子倒过来用,如在一个存货计算中创建一个不同的运行。你从存货1,000开始,然后减去各种花销和收据。
这样的查询有两个优点:
● 你不需要储存结果。当用账户编号或外键操作时,执行可以如闪电般迅速。
● 你以一个标签结束事务,它可以逐行进行检查。如果出现问题的话,你可以将导致问题出现的事务隔离。
文章来源于领测软件测试网 https://www.ltesting.net/