0
讓我們來簡單的查詢存儲過程:取行與總結resilts並將其放置在輸出參數
SELECT SUM(Field1), Field2 FROM TableName GROUP BY Field2
在我來說,我知道一個事實,即有MAX爲FIELD2 5個不同的值(1-5 ),因此該查詢將返回最多5行(如果例如沒有Field2值= 2的記錄,則可能會更少)。
我感興趣的是根據它所屬的Field2
值將值SUM(field1)
存儲到OUTPUT
參數中。目前我從存儲過程(簡化)這樣做:
SELECT @prm1 = SUM(Field1) FROM TableName WHERE Field2=1
SELECT @prm2 = SUM(Field1) FROM TableName WHERE Field2=2
SELECT @prm3 = SUM(Field1) FROM TableName WHERE Field2=3
SELECT @prm4 = SUM(Field1) FROM TableName WHERE Field2=4
SELECT @prm5 = SUM(Field1) FROM TableName WHERE Field2=5
有沒有更好的方法來實現這一目標?
編輯:此存儲過程正在執行超過10個查詢並從每個查詢獲取摘要。我已經決定不要與客戶端分開執行10多個不同的查詢,但將它們放在一個存儲過程中,然後通過輸出參數返回結果。這些查詢不會有單獨調用它們的目的,只能作爲批處理。但是,如果您認爲這不是一個好主意,我會傾聽您的觀點。
爲什麼它必須是一個輸出參數?爲什麼不只是返回'SELECT'的結果集呢?你需要在你的問題中包含你如何使用這些輸出。 – EkoostikMartin
因爲我正在計算大約12-15個彙總值並將它們返回給我的應用程序。因此,我不是從我的應用程序執行12個不同的查詢,而是通過一個存儲過程執行它們,並通過輸出參數將結果傳遞給應用程序。 – Goran