2014-02-18 146 views
0

我有以下表SQL顯示記錄

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的dateseen條目CAMID 5以後進入3爲該特定的註冊號碼。

從系統之上的SAMPE數據表應該只返回一個車牌號G24581,因爲它在CAMID不遲項5.你可以聘請

+0

你想這是SQL或EF查詢? – Thewads

回答

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