我希望在SQL Server中的表中保留最新日期
这是我的桌子 这是我想要得到的输出: 试试这个:我希望在SQL Server中的表中保留最新日期,sql,sql-server,tsql,sql-order-by,window-functions,Sql,Sql Server,Tsql,Sql Order By,Window Functions,这是我的桌子 这是我想要得到的输出: 试试这个: 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
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
其思想是为每个用户创建一组订单记录,并仅为每个用户获取第一个(最新的)记录。请查看
row_number()
-在ANSI-92 SQL标准中(超过25年前),旧式的逗号分隔表列表样式被正确的ANSIJOIN
语法所取代而且不鼓励使用它
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;