在Linq中有子句
我有一个查询,它连接两个表,即header和detail表,在having子句中,我必须检查header的total标记是否应该等于detail标记的总和 查询是:-在Linq中有子句,linq,Linq,我有一个查询,它连接两个表,即header和detail表,在having子句中,我必须检查header的total标记是否应该等于detail标记的总和 查询是:- select h.ExamID,h.ExamID,max(h.TotalMark) as TotalMark from ExamMasters h join ExamDetails d on h.ExamID=d.ExamID group by h.ExamID,h.ExamName having max(h.TotalMark)
select h.ExamID,h.ExamID,max(h.TotalMark) as TotalMark
from ExamMasters h
join ExamDetails d on h.ExamID=d.ExamID
group by h.ExamID,h.ExamName
having max(h.TotalMark)=sum(d.Mark)
我只想将此查询转换为linq语法。
有人能帮忙吗
问候,,
它应该是:
var res = from h in ExamMasters
join d in ExamDetails on h.ExamID equals d.ExamID
group new { h, d } by new { h.ExamID, h.ExamName } into hdg
let max = hdg.Max(x => x.h.TotalMark)
where hdg.Sum(x => x.d.Mark) == max
select new
{
hdg.Key.ExamID, hdg.Key.ExamName, TotalMark = max
};
注意
组的使用
<代码>按进入
,事实上,在group by之后既有h
又有d
,我必须把它们放在一个新的{h,d}中,注意group by by
有一个子句进入
,就像h组由新的{h.ExamID,h.ExamName}感谢您的及时回复。但我无法在Linq中编写where子句来检查max(TotalMark)=sum(Mark)@AjithCholayil-如果这个答案帮助您解决了问题,请考虑将问题标记为已解决。