2013-05-14 70 views
0

我有這個表Server 2008 R2的更新最大(最近)日期

enter image description here

我想更新最大(近)結束日期的訂單ID = 12

我試着像這樣

UPDATE Order_Status 
    SET endTime = @startTime 
    WHERE @orderID IN (
    SELECT OrderID 
    FROM Order_Status 
    GROUP BY @OrderID 
    Having max (@startDate) 

但是這甚至沒有遵守,請問什麼是正確的?感謝

編輯 對不起,我問錯了,我想要的是更新結束在最近(starteTime)

我的意思。我要的是要更新的具有最新的開始時間

回答

1

請嘗試該行的結束時間值:

;with T as(
    select *, ROW_NUMBER() over (order by StartTime desc) RNum from Order_Status where OrderID=12 
) 
update top(1) T set [email protected] 

多個訂單ID,嘗試

;with T as(
select *, ROW_NUMBER() over (partition by OrderID order by StartTime desc) RNum from Order_Status 
) 
update T set [email protected] where RNum=1 
+0

那是什麼?它是SQL? – 2013-05-14 07:38:53

+0

你的第一個代碼更新我的舊日期,我想我的最新的最新日期數據這意味着最大日期 – 2013-05-14 07:43:27

+0

請我錯了,檢查我的編輯。我想要的是在具有最近的StartTime的行中更新endTime值 – 2013-05-14 07:45:50