0
我有一份调查答卷表(评估),一个地区可以提交多个评估报告,但我只希望针对每个地区的最新评估做出回应。由几个字段组合并选择最近日期?
下面是我的数据,标有*的记录将是那些我想回报
AsessmentID AssessmentDate Status AreaID Response Category
1 01/01/2016 Complete 1 1 A
1 01/01/2016 Complete 1 2 B
1 01/01/2016 Complete 1 4 C
2 05/01/2016 Complete 1 5* A
2 05/01/2016 Complete 1 4* B
2 05/01/2016 Complete 1 5* C
3 02/01/2016 Complete 2 1* A
3 02/01/2016 Complete 2 2* B
3 02/01/2016 Complete 2 4* C
4 03/01/2016 Complete 3 5* A
4 03/01/2016 Complete 3 4* B
4 03/01/2016 Complete 3 5* C
5 04/01/2016 Draft 3 3 A
5 04/01/2016 Draft 3 2 B
5 04/01/2016 Draft 3 3 C
这是到目前为止我的LINQ,但它只返回2个响应
from c in db.Answers.Where(b => b.Status == Status.Complete)
group c by new { c.AreaID, c.AssessmentID, c.AssessmentDate} into grp
select grp.OrderByDescending(c => c.AssessmentDate).FirstOrDefault();
辉煌,唯一的麻烦是,我没有提到每个响应也有一个属性称为“类别”,我需要每个区域的平均类别值 – totalitarian
我认为您需要定义如何计算平均值A,B,C ..值。那么找出你想要的东西应该不那么难。 :) –
计数(类别)/总和(类别) – totalitarian