我有一個存儲過程如下。將兩個不同的查詢合併爲1
DECLARE @Temp TABLE
(...)
INSERT INTO @Temp
SELECT MeasureDate, col1, col2
FROM Table1
WHERE Col3 = 1
INSERT INTO @Temp
SELECT MeasureDate, col1, col2
FROM Table1
WHERE Col3 = 1
AND Col4 = 7000
SELECT SUM(col1)/SUM(col2) AS Percentage, MAX(), MeasureDate
FROM @Temp
GROUP BY MeasureDate
我做兩插入到臨時表中,有一個額外的第二個地方插入,但相同的列相同的表,那我就在臨時表SUM(COL1)/ SUM(COL2)返回的結果,我需要。有沒有辦法將所有這些插入和選擇合併到一個語句中,因此我不使用臨時表並從Table1執行單個選擇?或者,即使我仍然需要臨時表,將選擇合併到一個選擇而不是兩個單獨的選擇?存儲過程正常工作,只是尋找縮短它的方法。
謝謝。
有可能做到這一點,但你最好給一些更多的細節。目前還不清楚爲什麼要將重複數據放入臨時表中,如果這是需求或錯誤,並且在構建查詢時會產生巨大差異。 – Paolo 2014-09-19 13:09:06
你是對的,我糾正了查詢,兩個查詢是不同的,一個是col3 = 2,另一個是col3 = 1和col4 = 7000。這不是重複的數據 – artm 2014-09-19 13:14:47