我如何在单个查询中执行此操作

How can I perform this in a single query

在 SQL Server 2008 中,我有类似的东西:

Accounts:

aaa | 01/01/2010 | 15.00    
bbb | 01/01/2010 | 20.00  
ccc | 01/01/2010 | 10.00    
ddd | 02/01/2010 | 30.00   
eee | 04/01/2010 | 25.00  
fff | 05/01/2010 | 1.00

Transactions:

aaa | 01/01/2010 | 15.00      
aaa | 02/01/2010 | 20.00     
aaa | 03/01/2010 | 5.00    
bbb | 01/01/2010 | 15.00   
bbb | 04/01/2010 | 5.00  
ccc | 04/01/2010 | 10.00      
ddd | 05/01/2010 | 25.00    

我需要这样的结果:

      Jan-10    Feb-10  Mar-10  Apr-10  May-10  Accts tot   Trans Tot
Jan-10  15      20      5       5       0       45          45
Feb-10  15      0       0       15      0       30          30
Mar-10  0       0       0       0       0       0           0
Apr-10  0       0       0       0       0       25          25
May-10  0       0       0       0       0       0           0

我希望这是有道理的...每个单元格都是在特定月份创建的帐户的交易总和。因此,在一月份创建的帐户将有一年中每个月的交易总额。第一列是账户日期,行是交易日期,单元格是当月创建的账户在相应月份有交易的任何时候的总和。

现在我对表进行连接,然后遍历并计算每个单元格。

循环占用了我的处理时间。

我认为您不会找到 return 的查询。许多年前,我是 sqlServer 方面的专家,但我忘记了很多关于 transact-sql 的事情,当我遇到这类问题时,我所做的是创建一个临时的 table使用基于查询所需的列并开始插入信息,使用游标循环信息。最后只有一个"select * from #temp"。希望这个想法可以帮助...