2014-07-24 36 views
0

我需要根據子對象的值確定對象的最大值。來自存儲過程的TSQL最大值結果最有效的方式

exec GetSubObjects @ID = ID 

產生的結果集的子對象與地位

一個int,我需要從結果集的最高地位。

有沒有辦法直接對結果集進行聚合?

+0

什麼是GetSubObjects的返回類型?如果它是一個表,你可以在from子句中使用它。 – Vulcronos

+0

只是一個結果集,你在想用OUTPUT嗎? –

回答

1

您可以使用表變量並插入結果有

DECLARE @T TABLE(
    COL1 INT 
) 

INSERT INTO @t 
exec GetSubObjects @ID = ID 

,那麼你必須在表中的結果,所以你可以做任何你喜歡的

SELECT MAX(COL1) FROM @T 
+0

這幾乎是我得到的。我做了一些研究,不必定義表var/temp表,看起來像使用OPENROWSET混合評論(http://stackoverflow.com/questions/653714/how-to-select-into-temp-table-from-存儲過程)。 –

+0

我現在有一個問題,我最終想要得到的是外部對象的結果集以及每個基於該對象的狀態的select max。一個函數是有道理的,但似乎你不能在一個函數中運行exec ... –

+0

我正在尋找一種'魔術'的方式,而不必將數據放在表中... –

相關問題