在SQL Server(2010)中执行一个存储过程(返回一个表)并在一个(或几个)语句中求和一列中有一种简单的方法吗?SQL从exec stored_proc中选择SUM(col)?
如
SELECT SUM(column) FROM exec proc_GetSomeStuff 'param1', 'param2'
在SQL Server(2010)中执行一个存储过程(返回一个表)并在一个(或几个)语句中求和一列中有一种简单的方法吗?SQL从exec stored_proc中选择SUM(col)?
如
SELECT SUM(column) FROM exec proc_GetSomeStuff 'param1', 'param2'
还没有得心应手服务器进行测试,但试试这个:
declare @temp table(col1 int)
insert into @temp(col1)
exec proc_GetSomeStuff 'param1', 'param2'
select sum(col1) from @temp
确保您的表变量(或临时表)具有相同的模式作为存储过程的结果。如果您知道从SP返回的行数很多,那么临时表可能是更好的选择。 (我不知道如果表变量可以刷新到磁盘,如果他们变得太大)
是否@ temp必须拥有存储过程中的所有列?只是为了避免不必要的打字。去威尔士... –
是的(是的,去威尔士!) – geofftnz
嗯只是测试和不,不得不将所有列添加到@temps。仍然应该是一个很好的解决方案 –
请参阅例如:http://stackoverflow.com/questions/3730718/select-from-stored-procedure – DeCaf