如何仅为最新的日期访问表提取所有数据

时间:2016-04-18 15:11:21

标签: sql ms-access

我在访问数据库中有一个表。我正在处理的查询旨在提取所选字段,但仅提取最近日期的信息。我试图将Report Date字段的条件更改为最大值,并且还要更改为" Max"总计。这些都不奏效。因此,下面的sql代码会拉出我想要的字段,并使用最新的数据对数据进行排序。这是对我的解决方案的一个肮脏的修复,并为我需要的东西(仅最近的日期观察)提取了太多必要的数据 - 总体而言,我如何仅在最近的日期提取所有观察结果。谢谢!

SELECT      Max(RedProjectHistorical.[Report Date]) AS [MaxOfReport Date], 
            RedProjectHistorical.ID, 
            RedProjectHistorical.[Project Name], 
            RedProjectHistorical.[Client Name], 
            RedProjectHistorical.[Internal Project Status], 
            RedProjectHistorical.[Internal Project Status Value], 
            RedProjectHistorical.[Project manager]
FROM        RedProjectHistorical
GROUP BY    RedProjectHistorical.ID, 
            RedProjectHistorical.[Project Name], 
            RedProjectHistorical.[Client Name], 
            RedProjectHistorical.[Internal Project Status], 
            RedProjectHistorical.[Internal Project Status Value], 
            RedProjectHistorical.[Project manager]
ORDER BY    Max(RedProjectHistorical.[Report Date]) DESC

1 个答案:

答案 0 :(得分:3)

试试这个:

SELECT      [Report Date], 
            ID, 
            [Project Name], 
            [Client Name], 
            [Internal Project Status], 
            [Internal Project Status Value], 
            [Project manager]
FROM        RedProjectHistorical
WHERE       [Report Date] = (
                             SELECT MAX([Report Date]) 
                             FROM   RedProjectHistorical
                            )
ORDER BY    [Report Date] DESC

注意:如果该字段属于哪个表没有差异,则无需为每个字段添加表名。

编辑:这将适用于表格按“报告日期”排序:

SELECT TOP 1    [Report Date], 
                ID, 
                [Project Name], 
                [Client Name], 
                [Internal Project Status], 
                [Internal Project Status Value], 
                [Project manager]
FROM            RedProjectHistorical
ORDER BY        [Report Date] DESC