[英]SQL Update row with min Date of ID
我有一个ID为ID,日期为X的表
id date x
1 2015-06-09 12:20:45 1
1 2015-06-10 10:21:55 1
2 2015-06-08 12:34:12 1
2 2015-06-11 13:11:13 1
3 2015-06-07 14:50:44 1
3 2015-06-01 11:12:14 1
现在,我想增加每个ID最旧的行的x。 所以我想这个出来:
id date x
1 2015-06-09 12:20:45 2
1 2015-06-10 10:21:55 1
2 2015-06-08 12:34:12 2
2 2015-06-11 13:11:13 1
3 2015-06-07 14:50:44 1
3 2015-06-01 11:12:14 2
我就是这样尝试的:
UPDATE Table SET x=x+1 where date= (SELECT MIN(date) FROM Table WHERE id=??)
?? 是我不知道该怎么办的地方。 此外,我收到错误消息是因为“无法在FROM子句中指定要更新的目标表”。 也许这是一种完全错误的方式,我希望有人可以帮助我
尝试这个:
UPDATE Table
SET x=x+1
where date in
(SELECT MIN(date)
FROM Table
group by id)
按ID分组可获取最小日期。
UPDATE Table
SET x=x+1
where date =
(SELECT top 1 MIN(date)
FROM Table
group by id)
您可以使用JOIN并更新为
update table_name t1
join(
select id,min(date) as date from table_name
group by id
)t2 on t1.id = t2.id and t1.date = t2.date
set t1.x = t1.x+1 ;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.