0

我有这张表,我想根据另一列的最大值更新其中一列。

例如:

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”查询中实现这一点?

4

1 回答 1

0

您可以使用子查询来查找相应的值:

UPDATE MyTable
SET endDate = (SELECT MAX(T2.startDate)
               FROM MyTable AS T2
               WHERE T2.groupId = MyTable.groupId)
于 2013-09-15T08:39:14.540 回答