我有一個有兩個變量的存儲過程。它們是@DateLeft
和@DateRight
。 @DateLeft
是我想設置的等於查詢結果的變量。 @DateRight = GETDATE()
。我有以下數據:如何將變量的值設置爲SQL中查詢的結果?
編輯2:添加了「距離」列
Date Code Distance **The values in the distance column are arbitrary and they are there for example's sake
11/23/2015 A 456
12/28/2015 B 2163
1/25/2016 C 203
4/30/2015 D 8921
我的存儲過程是應該使用@DateLeft
和@DateRight
確定控制另一計算一個時間範圍。這些日期是特定事件發生的最近日期。我應該使用Date
列中的日期作爲Code
列中每個不同代碼的@DateLeft
值。例如,程序應該運行並獲得11/23/2015
作爲代碼A
的@DateLeft
的值。然後,它將進行計算並繼續前進,並獲得代碼B
的12/28/2015
,依此類推。我不知道如何執行此計算,以便它不必再次運行整個過程來使用@DateLeft
的不同日期進行計算。我對最終結果的查詢看起來是這樣的:
SELECT SUM(TraveledDistance) AS Distance, Code
FROM MyTable
WHERE
Time BETWEEN @DateLeft AND @DateRight
我願做這樣的事情,也許(我當然願意接受建議):
SET @DateLeft = Select Date From SampleTable
Group By Code --I know this doesn't work
任何幫助表示讚賞。
編輯:程序本身的描述
該過程採用的@DateLeft
值(其中,因爲它代表,是不的參數),並使用它作爲一個過濾器,以計算該日期之間的行進距離和今天的日期(@DateRight
)。如果你願意,你可以組成計算部分。我更關心的是我應該採取什麼方法將@DateLeft
設置爲每個代碼的不同日期,而不必重複該過程多次。
退房'選擇INTO':https://msdn.microsoft.com/en-us/library/ms188029.aspx – zimdanen
@zimdanen感謝您的參考。有沒有另外一種方法來做到這一點,不需要創建一個單獨的表來存儲日期? – ic3man7019
我認爲你的程序不需要你正在使用的兩個參數。 –