2011-10-15 32 views
2

在SQL Server(2010)中执行一个存储过程(返回一个表)并在一个(或几个)语句中求和一列中有一种简单的方法吗?SQL从exec stored_proc中选择SUM(col)?

SELECT SUM(column) FROM exec proc_GetSomeStuff 'param1', 'param2' 
+0

请参阅例如:http://stackoverflow.com/questions/3730718/select-from-stored-procedure – DeCaf

回答

4

还没有得心应手服务器进行测试,但试试这个:

declare @temp table(col1 int) 

insert into @temp(col1) 
exec proc_GetSomeStuff 'param1', 'param2' 

select sum(col1) from @temp 

确保您的表变量(或临时表)具有相同的模式作为存储过程的结果。如果您知道从SP返回的行数很多,那么临时表可能是更好的选择。 (我不知道如果表变量可以刷新到磁盘,如果他们变得太大)

+0

是否@ temp必须拥有存储过程中的所有列?只是为了避免不必要的打字。去威尔士... –

+0

是的(是的,去威尔士!) – geofftnz

+0

嗯只是测试和不,不得不将所有列添加到@temps。仍然应该是一个很好的解决方案 –