C# 如何按另一组的和进行分组?
我正在尝试做一个C# 如何按另一组的和进行分组?,c#,linq,C#,Linq,我正在尝试做一个分组依据另一个分组依据的总和 在LINQ中这样做的正确方法是什么 下面的查询不起作用,但它旨在演示我要实现的逻辑 from so in TblServiceOrders join sologs in TblSOLogs on so.SONumber equals sologs.SONumber where so.DateClosed >= new DateTime(2014,01,17) where so.DateClosed <= new DateTime(20
分组依据
另一个分组依据
的总和
在LINQ中这样做的正确方法是什么
下面的查询不起作用,但它旨在演示我要实现的逻辑
from so in TblServiceOrders
join sologs in TblSOLogs on so.SONumber equals sologs.SONumber
where so.DateClosed >= new DateTime(2014,01,17)
where so.DateClosed <= new DateTime(2014,01,17)
where sologs.ElapsedHours != 0 || sologs.ElapsedMinutes != 0
group new {sologs.ElapsedHours, sologs.ElapsedMinutes} by sologs.SONumber into g
group new {g.Sum (x => x.ElapsedHours), g.Sum (x => x.ElapsedMinutes)} by "Totals" into t
select new {
AverageHours = t.Average (x => x.ElapsedHours)
AverageMins = t.Average (x => x.ElapsedMinutes)
}
TblServiceOrders中so的
在so.SONumber上的TblSOLogs中加入sologs。SONumber等于sologs.SONumber
其中so.DateClosed>=新日期时间(2014,01,17)
其中so.DateClosed x.ElapsedHours),g.Sum(x=>x.ElapsedMinutes)}由“总计”转换为t
选择新的{
AverageHours=t.平均值(x=>x.ElapsedHours)
AverageMins=t.平均值(x=>x.ElapsedMinutes)
}
下面的查询正在运行。现在下一个谜团是为什么我不能用它来填充VS中的DataGridView:-(
工作查询:
from so in TblServiceOrders
join sologs in TblSOLogs on so.SONumber equals sologs.SONumber
where so.DateClosed >= new DateTime(2014,01,17)
where so.DateClosed <= new DateTime(2014,01,17)
where sologs.ElapsedHours != 0 || sologs.ElapsedMinutes != 0
group new {sologs.ElapsedHours, sologs.ElapsedMinutes} by sologs.SONumber into g
group new {hours = g.Sum (x => x.ElapsedHours), mins = g.Sum (x => x.ElapsedMinutes)} by "Totals" into t
select new {
Average = t.Average (x => (x.hours * 60) + x.mins),
Count = t.Count ()
}
可能重复的不重复,不同的范围,不同的问题。
hours = g.Sum (x => x.ElapsedHours), mins = g.Sum (x => x.ElapsedMinutes)