繁体   English   中英

SQL更新行,带有最小ID日期

[英]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 ;

http://www.sqlfiddle.com/#!9/fec17/1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM