2011-10-15 27 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。仍然應該是一個很好的解決方案 –