我有下表
CamId RegNumber DateSeen
5 G1234B 18/02/2014 11:54
3 G1234B 18/02/2014 11:51
5 G11854 18/02/2014 11:50
3 G11854 18/02/2014 11:49
3 G24581 18/02/2014 11:48
5 G24581 18/02/2014 11:47
我想根据CamId 3上针对该特定注册号的日期条目,使用CamId 3检索CamId 3中没有后续条目的所有记录。
从上面的样本数据表中,系统应该只返回一个号码牌G24581,因为它在CamId 5中没有后来的条目。
答案 0 :(得分:0)
您可以使用的一种方法是将表连接到表中两次,以便在一个表中具有CamID为3而另一个为5的值。然后,您希望获取第一个表中没有的所有记录第二张表中的记录。
Select A.* from Table A
LEFT JOIN ( Select * from Table ) B on A.RegNumber = B.RegNumber AND A.CamID = 3 and B.CamID = 5 AND A.DateSeen <= B.DateSeen
WHERE B.CamID IS NULL
答案 1 :(得分:0)
试试这个:
var query = from r1 in db.Regs
where r1.CamId == 3 &&
!db.Regs.Any(r2 => r2.CamId==5 && r2.DateSeen>r1.DateSeen && r2.RegNumber==r1.RegNumber)
select r1;