【问题标题】:Find Sum by using LINQ Lambda Expression使用 LINQ Lambda 表达式求和
【发布时间】:2017-06-10 04:22:48
【问题描述】:

我有一个 SQL 表,可以在其中获取多条记录。但我想将[Value]Sales and Collection 分组相加

ExecutiveName   ClientName  2017-01-21  2017-01-22  2017-01-24  ValueofGoal  GoalType
Admin           Omelettes   10000       NULL        NULL        50000        Collection
Admin           Omelettes   10000       NULL        NULL        120000       Sales
Admin           Vijay       NULL        NULL        10000       50000        Collection
Admin           Vijay       NULL        NULL        10000       120000       Sales
Admin           Sujeet      NULL        10000       NULL        50000        Collection
Admin           Sujeet      NULL        10000       NULL        120000       Sales

以上,这是我的实际表格,我想要ValueofGoal 的总和Collection and Sales 的基础和ValueOfGoal 列的总和

就像:

 Sales       : 360000 
 Collection  : 150000
 Total       : 510000

如果有人知道我如何使用 lambda 表达式来做到这一点,请给我一个解决方案

【问题讨论】:

  • 你自己尝试过吗?
  • var data = db.yourTable.GroupBy(x => x.GoalType).Select(x => new { Goal = x.Key, Total = x.Sum(y => y.ValueofGoal ) });
  • 数据库表不是 C# 中的实际对象。您的代码在哪里显示了您迄今为止所做的尝试?

标签: c# .net linq lambda asp.net-mvc-5


【解决方案1】:
.GroupBy(x => x.GlobalType)
    .Select(n => n.Sum(m => m.ValueofGoal));

此代码块将按 GlobalType 分组,然后根据 groupby 对所有值求和,并将返回每个值的总和。

【讨论】:

  • 这是错误的,这里的计数是什么?它如何给出ValueofGoal 的总和
  • 你真的应该多加一点。对逻辑的描述或解释或不仅仅是一个赤裸裸的代码回复。
  • 好的,我也添加了描述。
【解决方案2】:

你可以使用

var list = dbContext.YourModel.GroupBy(x=>x.GoalType)
    .Select(x=>new {
        GoalType=x.Key,
        ValueOfGoal=x.Sum(y=>y.ValueofGoal)
    }).ToList();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    • 2023-03-12
    相关资源
    最近更新 更多