【问题标题】:SQL Show records that meet a provided criteriaSQL 显示满足给定条件的记录
【发布时间】:2014-02-18 13:26:37
【问题描述】:

我有下表

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 上针对该特定注册号的 dateeen 条目检索所有 CamId 3 中没有后续条目的 CamId 5 记录。

从上面的示例数据表中,系统应该只返回一个车牌 G24581,因为它在 CamId 5 中没有以后的条目。

【问题讨论】:

  • 你想要这个作为 SQL 还是 EF 查询?

标签: c# sql entity-framework entity


【解决方案1】:

您可以采用的一种方法是加入表两次,以便在一个表中您的值是 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

【讨论】:

    【解决方案2】:

    试试这个:

    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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-27
      • 2021-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-30
      • 2020-03-30
      相关资源
      最近更新 更多