【问题标题】:How can I sum data from a database table using Entity Framework?如何使用实体框架对数据库表中的数据求和?
【发布时间】:2015-04-24 10:58:01
【问题描述】:

在我的索赔表中,我有多个列。其中一列是总索赔额。如何从数据库中检索这些数据并找到这些总数的总和?我已经知道如何编写一个循环来找到这个总和,但不知道如何从数据库中检索数据并将其放入可用的格式。提前谢谢你。

public ActionResult About()
{
      IQueryable<ClaimsDateGroup> data = from claim in db.Claims
                                         group claim by claim.CreatedDate into dateGroup
                                         select new ClaimsDateGroup();       
      return View();
}

【问题讨论】:

  • 只是一个小评论,表格有列,而不是字段......
  • 表格也有字段,字段引用单个项目。

标签: c# sql linq entity-framework for-loop


【解决方案1】:

如果您只需要索赔的总和,请使用Sum(只需将ClaimsMade 替换为您的实际列名):

db.Claims.Sum(c => c.ClaimsMade)

【讨论】:

  • 嗯,你每天都能学到新东西。谢谢!但是有一个问题,似乎有一个舍入错误,它会出现多个 0,最后是 7。不知道为什么。不过谢谢!
  • 当您使用floatdouble 时,可能会出现舍入问题。例如,请参阅这篇文章:floating-point-gui.de/errors/comparison。为避免舍入错误,您可以切换到decimal
【解决方案2】:

目前还不清楚您要达到什么目标以及使用什么技术。如果您喜欢为此使用 Sql.Linq,那么您需要构建聚合方法。类似的东西

Decimal? totalOfClaims = (from claim in db.Claims
                          group claim by claim.CreateDate
                          select claim.CreateDate).Count();

您将获得不同日期的索赔总数。如果这不是您所追求的,请在问题中提供更多详细信息。

【讨论】:

  • 对不起,不清楚,我现在已经说得更清楚了。我想合计存储在表中的所有货币值。
猜你喜欢
  • 2018-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-21
  • 1970-01-01
  • 1970-01-01
  • 2012-01-16
相关资源
最近更新 更多