ms access:检索最新值

时间:2010-02-18 02:55:08

标签: ms-access

我有一个表项目。 它具有以下列:
项目ID,projectName,UpdateTime

表中的数据如下:

  Project ID   projectName   UpdateTime
       1          abc        12-2-2009 01:10:00
       1          abc        12-2-2009 04:18:00
       2          xyz        17-7-2009 08:45:00
       2          xyz        17-7-2009 12:21:00

我希望结果集根据更新时间显示最新的更新项目信息。
对于上面的例子,它应该显示

  Project ID   projectName   UpdateTime
       2          xyz        17-7-2009 12:21:00
       1          abc        12-2-2009 04:18:00

4 个答案:

答案 0 :(得分:1)

这应该做的工作(编辑以反映@Remou指出我在原始问题中没有注意到的信息):

  SELECT [Project ID], ProjectName, Max(UpdateTime)
  FROM Project
  GROUP BY [Project ID], ProjectName
  ORDER BY Max(UpdateTime) DESC

如果不这样做,要么我犯了错误,要么你的问题中没有其他信息。

答案 1 :(得分:0)

SELECT P.[Project ID]
     , P.projectName
     , Max(P.UpdateTime) AS [Latest Update Time]
FROM Project AS P
GROUP BY P.[Project ID]
     , P.projectName
ORDER BY Max(P.UpdateTime) DESC;

答案 2 :(得分:0)

我有一个答案,它使用查询的图形界面,这可能很容易实现。假设所有3个字段都包含在一个表中。单击"创建"创建新查询。然后"查询设计"。右键单击打开的图形界面的上半部分,然后单击"显示表"选择包含这三个字段的表,然后双击每个字段,一次一个,以便它显示在下部。如果您有自动编号字段,请确保不将其包含在下部,因为这将导致显示所有表记录。查询中包含的任何其他字段可能具有相同的不期望结果。接下来,在您的功能区上单击" DESIGN"然后点击" Totals"图标。关注你的"更新时间"下部的字段。改变" Group By"到" Max"通过单击该字段并从下拉列表中进行选择。不要对其他两个字段进行任何更改。保存查询并在数据表视图中打开它(通过单击" HOME","查看","数据表视图"

执行此操作

您应该获得所需的结果。请告诉我这是否适用于您。

聚苯乙烯。项目名称中的拼写错误也会给您带来不准确的结果。为了减少这种可能出现问题的可能性,您的用户可以从具有项目名称下拉列表的组合框中选择项目名称。当用户从下拉列表中选择项目ID时,也可以设计一种方法来自动输入项目名称。

答案 3 :(得分:0)

我不确定为什么每个人似乎都希望对这些项目进行分组。这个问题似乎只是要求以UpdateTime的降序显示结果     SELECT * FROM Project     按UpdateTime DESC排序

我还注意到,在他的例子中,他预期的结果是按项目ID和项目名称分组的记录,在这种情况下,@ David-W-Fenton提供的答案必须足够。

总之,他应该更清楚地问他的问题。