我有这个表,我想根据另一个列的最大值更新其中一个列。
例如:
Table with the following columns
Id title startDate groupId endDate
我想基本上更新所有行的endDate,在其中我将用具有相同groupId的所有行中的startDate的最大值替换endDate
例如
表可以初始化
1 ,grp1, 2013-09-01 14:45, 1, ''
2 ,grp1, 2013-10-01 15:45, 1, ''
3 ,grp1, 2013-11-01 16:45, 1, '' <----Row with the maximum (most future startDate)
4 ,grp2, 2013-09-01 14:45, 2, ''
5 ,grp2, 2013-10-01 14:45, 2, '' <----Row with the maximum (most future startDate)
6 ,grp2, 2013-08-01 14:45, 2, ''
所以我希望能够运行查询,使Table看起来像
1 ,grp1, 2013-09-01 14:45, 1, 2013-11-01 16:45
2 ,grp1, 2013-10-01 15:45, 1, 2013-11-01 16:45
3 ,grp1, 2013-11-01 16:45, 1, 2013-11-01 16:45
4 ,grp2, 2013-09-01 14:45, 2, 2013-10-01 14:45
5 ,grp2, 2013-10-01 14:45, 2, 2013-10-01 14:45
6 ,grp2, 2013-08-01 14:45, 2, 2013-10-01 14:45
如何在“SqlLite”查询中实现?
答案 0 :(得分:0)
您可以使用子查询查找相应的值:
UPDATE MyTable
SET endDate = (SELECT MAX(T2.startDate)
FROM MyTable AS T2
WHERE T2.groupId = MyTable.groupId)