sql - 创建 SQL 查询以检索最新记录

标签 sql tsql derived-table

我正在为我的项目团队创建一个状态板模块。状态板允许用户将其状态设置为“进”或“出”,并且还可以提供注释。我计划将所有信息存储在一个表中......数据示例如下:

Date               User         Status    Notes
-------------------------------------------------------
1/8/2009 12:00pm   B.Sisko      In        Out to lunch    
1/8/2009 8:00am    B.Sisko      In  
1/7/2009 5:00pm    B.Sisko      In    
1/7/2009 8:00am    B.Sisko      In    
1/7/2009 8:00am    K.Janeway    In   
1/5/2009 8:00am    K.Janeway    In    
1/1/2009 8:00am    J.Picard     Out       Vacation  

我想查询数据并返回每个用户的最新状态,在这种情况下,我的查询将返回以下结果:

Date               User         Status    Notes
-------------------------------------------------------  
1/8/2009 12:00pm   B.Sisko      In        Out to lunch    
1/7/2009 8:00am    K.Janeway    In   
1/1/2009 8:00am    J.Picard     Out       Vacation  

我正在尝试找出 TRANSACT-SQL 来实现这一点?任何帮助将不胜感激。

最佳答案

聚合在子查询派生表中,然后连接到它。

 Select Date, User, Status, Notes 
    from [SOMETABLE]
    inner join 
    (
        Select max(Date) as LatestDate, [User]
        from [SOMETABLE]
        Group by User
    ) SubMax 
    on [SOMETABLE].Date = SubMax.LatestDate
    and [SOMETABLE].User = SubMax.User 

关于sql - 创建 SQL 查询以检索最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1049702/

相关文章:

sql - 在 SQL 中,如何获取表中列值最低的所有行?

sql - 为从选择中获取的每一行执行插入?

sql - 请解释如何使用派生表将此 SQL 表示为单个语句

SQL 如何在不使用超前和滞后的情况下更新上一行和下一行值?

php - Eloquent 多对多求和

mysql - 索引创建优化

c# - 优化复杂查询

sql - 如何在 T-SQL 中使用逗号分隔的值列表作为过滤器?

派生表上的 mysql 求和比没有它的求和更快

Mysql 引用嵌套查询的派生表