假设我有一个看起来像这样的表:
Id CheckboxId Selected DateCreated
1 1 1 1/1/2010
2 2 1 1/2/2010
3 1 0 1/3/2010
4 3 1 1/4/2010
5 3 0 1/5/2010
Run Code Online (Sandbox Code Playgroud)
CheckboxId是一个FK,该表只是选中或取消选中框的历史记录.
我想得到的是每个CheckboxId的最新记录.在我的演示表的情况下,我想要第2,3和5行.你会如何实现这一目标?此外,我确信这与查询开头的"where"一样简单,但如果它也可以修改为仅在指定日期之前获取记录,这将是非常棒的.
我无法弄清楚如何在SQL中编写查询来执行此操作,并且无法进行链接查询.我敢肯定它必须是从一个不同的checkboxIds的子查询中选择,再加上一个或多个组,但我的SQL并不是那么好.
非常感谢您的帮助.
应该是这样的:
var results = (from x in context
group x by x.CheckboxID into g
select new
{
CheckboxID = g.Key,
MaxItem = g.OrderByDescending(o => o.DateCreated).FirstOrDefault()
});
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
foreach (var x in results)
x.MaxItem.Selected //...etc.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1683 次 |
| 最近记录: |