【问题标题】:I want to stay with the latest dates in a table in SQL Server我想保留 SQL Server 表中的最新日期
【发布时间】:2021-02-27 08:35:53
【问题描述】:
select so.nombre + ' ' + so.apellidos as nombre_completo, 
       se.actividad, 
       ss.fecha as fecha
from  Soldado so, Servicio se, ServicioSoldado ss
where ss.soldadoID = so.soldadoID and ss.servicioID = se.servicioID
group by so.nombre, so.apellidos, se.actividad, ss.fecha, so.soldadoID 
order by so.soldadoID, ss.fecha desc

这是我的桌子

这是我想要得到的输出:

【问题讨论】:

标签: sql sql-server tsql sql-order-by window-functions


【解决方案1】:

试试这个:

WITH DataSource AS
(
    select so.nombre + ' ' + so.apellidos as nombre_completo, 
           se.actividad, 
           ss.fecha as fecha,
           ROW_NUMBER() OVER (PARTITION BY so.soldadoID  ORDER BY ss.fecha desc) AS [RowID]
    from  Soldado so
    INNER JOIN Servicio se
        ON so.soldadoID = ss.soldadoID 
    INNER JOIN ServicioSoldado ss
        ON ss.servicioID = se.servicioID
)
SELECT *
FROM DataSource
WHERE [RowID] = 1;

这个想法是使用ROW_NUMBER 为每个用户创建一个订单记录集,并为每个用户获取第一个(最新的)记录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多