简化系统概述如何优化或简化极慢的SQL查询/函数/过程?
帐户具有一个独特的AccountID和OpeningBalance量(这是可以被理解为参考时间BOT的开始为帐户静态量);有一些交易具有CreditAmount,DebitAmount,DateStamp和通过FK_AccountID对账户的引用。
要求
对于给定的账户,什么是给定日期期限日期1到日期2的OpeningBalance?当然,如果Date1 = BOT,那么我们已经有了答案。然而,由于任何给定日期的OpeningBalance与上一个日期的ClosingBalance相等,为了计算这段时间,我们需要首先计算上一期的ClosingBalance,然后我们得到我们的答案。
解决方案/问题(S)
我写了一个解决方案(T-SQL,SQL Server 2008中)与一对夫妇为它确实工作的逻辑功能,但计算OpeningBalance的所有账户( 100+)一次性使用WHILE循环遍历每个帐户,这是不可用/可扩展的,每个帐户约为1秒。
问题
有没有办法解决这个问题没有[慢]循环?