2013-05-14 4 views
0

У меня есть эта таблицаSQL Server 2008 обновление r2 макс (последние) дата в таблице

enter image description here

Я хочу, чтобы обновить макс (недавние) ENDDATE для OrderId = 12.

Я попытался например

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

но это даже не выполнено, пожалуйста, что же такое право? благодаря

EDIT К сожалению, я спросил неправильно, что я хочу, чтобы обновить конец в самое последнее время (starteTime)

я имею в виду. что я хочу, чтобы обновить значение EndTime в строке, которая имеет самую последнюю StartTime

ответ

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] 

для нескольких OrderID, попробуйте

;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? –

+0

ваш первый код обновить мою старую дату, я хочу, чтобы мои самые последние данные, что означает максимальная дата –

+0

, пожалуйста, я спросил неправ, проверьте мои изменения. я хочу обновить значение endTime в строке, которая имеет самое последнее StartTime –

Смежные вопросы