我有一个巨大的历史表,每个带有“动作”的表都会记录下来
IdReg
IdTypeReg
State_prev
Action
State_new
Timestamp
而且我想不出这样的查询:
- 获取列表
IdRegs
- 在哪里
IdTypeReg
(@type
与他们的最后State_new
一个Timestamp<@Date
) - 最后一个不在
State_new
('foo','bar')
这意味着如果每个 ID 的表历史记录中的最后一个寄存器位于 'foo' 或 'bar' 中,则不会显示此 reg。
我的意思是...我以前做过,但我似乎不记得是怎么做的。
我可以说不允许使用游标,也不允许临时表,也不允许过多的子选择。
@EDIT:举例说明
假设到2013 年 1 月 1 日,我的最后一个RegId日志000123带有“已结束”
如果我将“2013 年 1 月 2 日”放在参数@date上,它不应该显示reg id 000123,无论它在Wheneverember 是否处于“工作”状态。
它在@date 之前结束,所以我不希望它出现在我的列表中。