【发布时间】:2010-12-15 14:05:33
【问题描述】:
我有一个表 Events,它有一个 EventId (PK)、Date、EmployeeId (FK) 和 StatusId (FK)。
我需要根据特定员工之前发生的记录标准(按时间顺序)选择记录。我不知道该怎么做,因为没有关系。
我想选择所有事件的计数,按 EmployeeId 分组,其中:
(a) 状态 ID = 1
(b) 该 EmployeeId 的最后一个事件(按时间顺序)的 StatusId 为 9。
请注意,任何事件的先前记录不一定与该员工相关。
*编辑说明我正在使用 SQL Server,并且我按日期按时间顺序引用了上一个事件!
【问题讨论】:
-
按时间顺序基于日期或 EventID
-
那你为什么不参考上一行存储
parent_id呢?顺便说一句,答案很大程度上取决于您使用什么 DBMS。例如,在 Oracle 中,多亏了分析功能 - 它可以很容易地完成。
标签: sql-server subquery