我如何在单个查询中执行此操作
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"。希望这个想法可以帮助...
在 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"。希望这个想法可以帮助...