SQL显示符合提供条件的记录

时间:2014-02-18 13:26:38

标签: c# sql entity-framework entity

我有下表

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中没有后来的条目。

2 个答案:

答案 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;