请告诉我以下情况。
表:
Id appName role Type Status createdAt
1 application1 role1 false completed 25/05/2014 12.00.00
2 application1 role1 true completed 25/05/2014 11.00.00
3 application1 role1 true completed 25/05/2014 11.00.00
4 application2 role1 true completed 25/05/2014 11.00.00
5 application2 role1 false completed 25/05/2014 10.00.00
在上表中,我需要像
这样的输出output:
Id appName role Type Status createdAt
4 application2 role1 true completed 25/05/2014 11.00.00
我不想要application1,因为它的类型是false而createAt是最新的。 如果application1类型为true且它是最新的,那么我们应该显示该记录。 请告诉我如何在linq中将查询写入sql。
关注:最新记录类型为false然后无需显示匹配记录。在上表中 application1类型为false,它是最新的,然后不需要显示1,2,3。 application2类型为true且它是最新的,因此显示只记录4。
答案 0 :(得分:0)
通过两个步骤进行查询:首先选择密钥的所有最新记录。然后从最新记录中选择具有正确状态的记录。
答案 1 :(得分:0)
(from d in context.Table
group d by d.appName into g
select g.OrderByDescending(gg=>gg.createdAt).Take(1))//should give you latest for each appname
.Where(dd=>dd.Type == true)//should filter out the ones with Type being False