【发布时间】:2012-10-11 05:24:18
【问题描述】:
我有一张桌子 vwuser。我想用表值函数 fnuserrank(userID) 加入这个表。所以我需要与表值函数交叉应用:
SELECT *
FROM vwuser AS a
CROSS APPLY fnuserrank(a.userid)
对于每个用户 ID,它会生成多条记录。我只想要每个没有 Term(inated) Rank 的 empid 的最后一条记录。我该怎么做?
数据:
HistoryID empid Rank MonitorDate 1 A1 E1 2012-8-9 2 A1 E2 2012-9-12 3 A1 学期 2012-10-13 4 A2 E3 2011-10-09 5 A2 学期 2012-11-9必须从该第 2 条记录和第 4 条记录中选择。
【问题讨论】:
-
您使用什么标准来确定“最后一条记录”?
-
monitordate 列只有一个,必须是最大值
-
我也在我的问题中给出了数据以及我想要什么
-
您不想要第 3 条和第 4 条记录吗,因为 3 的 MonitorDate 是在 10 月,而第二条记录的日期只有 9 月?
-
不,我只想要第二和第四条记录。这是因为我不想终止记录。我想要在此之前的记录。即最后的活动记录
标签: sql-server sql-server-2008 sql-server-2005 sql-server-2008-r2