2013-05-14 72 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