gpt4 book ai didi

linq-to-sql - LINQ To SQL - 获取匹配 where 子句的最新记录

转载 作者:行者123 更新时间:2023-12-04 02:57:06 24 4
gpt4 key购买 nike

给出类似下面的内容(只是作为示例放在一起)

Employee ID | Time In       | Position | Shift Length  1           | April 1 08:00 | Manager  | 8  0           | April 1 08:00 | Maint    | 8  1           | April 2 08:00 | Manager  | 8  2           | April 1 08:00 | Clerk    | 4  1           | April 3 08:00 | Manager  | 8  0           | April 2 12:00 | Maint    | 1  0           | April 3 12:00 | Maint    | 4  

如果给定一个特定日期,我需要能够检索在该日期之前发生的每个员工 ID 的最新记录(仅基于时间)

例如,如果给定的日期是

4 月 3 日 5:00

我希望看到以下行返回

Employee ID | Time In       | Position | Shift Length  1           | April 2 08:00 | Manager  | 8  2           | April 1 08:00 | Clerk    | 4  0           | April 2 14:00 | Maint    | 1  

我需要返回每场比赛的完整记录。

我还需要确保记录在按员工 ID 过滤之前根据给定日期进行评估。我不想获取每个员工的最新记录,然后根据日期测试这些记录。

感谢您的帮助。

最佳答案

听起来你想要这样的东西:

var query = from row in context.Whatever
where row.TimeIn < specifiedDate
group row by row.EmployeeID into g
select g.OrderByDescending(r => r.TimeIn).First();

所以步骤是:

  • 过滤掉我们不想要的东西
  • 按员工分组
  • 在每组中,按日期降序排列(即最新的在前)并取第一个条目

(另一种方法是使用 g.OrderBy(r => r.TimeIn).Last() - 我不知道这会对生成的 SQL 产生什么影响。)

关于linq-to-sql - LINQ To SQL - 获取匹配 where 子句的最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3311328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com