【问题标题】:Linq Grouping with a sumLinq 用总和分组
【发布时间】:2015-01-20 13:54:00
【问题描述】:

大家好,我有以下代码

var deptSalesQuery = from d in db.DashboardFigures
join s in outlets.Split(',').Select(x => int.Parse(x)) on d.OutletNo equals s
            where (d.TypeOfinformation == "DEPTSALES")                                
            select new DeptSales
                    {
                      Dn = (int)d.Number,                                                 
                      On = d.OutletNo,
                      Qs = (double)d.Value_4,
                      Se = (double)d.Value_2,
                      Si = (double)d.Value_3
                    };

我想要做的是将查询按“Dn”分组,即“d.Number”并返回 (double)d.Value_4、(double)d.Value_2、(double)d.Value_3 的总和。我看过论坛,有些人问过类似的问题,但由于某种原因,它对我不起作用。有人可以帮忙吗?

我已将代码更改为

var deptSalesQuery = from d in db.DashboardFigures
join s in outlets.Split(',').Select(x => int.Parse(x)) on d.OutletNo equals s
                                 where (d.TypeOfinformation == "DEPTSALES")
                                 group d by d.Number into newGroupedresult
                                 select new DeptSales
                                 {   

                                     Qs = (double)newGroupedresult.Sum(d => d.Value_4),
                                     Se = (double)newGroupedresult.Sum(d => d.Value_2),
                                     Si = (double)newGroupedresult.Sum(d => d.Value_3)
                                 };

但它不是分组,它显示的是单个记录。另外我通常有 Dn = D.Number,它不允许我放这个。

【问题讨论】:

    标签: c# linq group-by sum


    【解决方案1】:
    deptSalesQuery
    .GroupBy(x => x.Number)
    .Select(g => new 
                 { 
                    Dn = g.Key, 
                    Sum = g.Sum(x => x.Value_2 + x.Value_3 + Value_4)
                 });
    

    【讨论】:

    • 嗨 Selman22,谢谢你,我有点明白这个想法,但我很难将它放入上面的代码中。令人沮丧的是我已经编码了 17 年,现在正在学习 LinQ,但它就是不坚持!!!
    • @Alpesh 你是什么意思?您可以像deptSalesQuery = deptSalesQuery.GroupBy(x => x.Number) .... 一样分配它,或者用括号将您的查询括起来并在其后添加(your query).GroupBy(x => x.Number).Select(..)
    • 非常感谢,它现在可以工作了。我最初有一个问题,我认为它没有分组,最后这是我的数据错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多