【问题标题】:Linq query SUM and COUNTLinq 查询 SUM 和 COUNT
【发布时间】:2015-05-20 09:14:24
【问题描述】:

我有一个包含两列(itemPriceType1 和 itemPriceType2)的 SQL Server Order 表。我需要在 Linq 查询或 lambda 表达式中获取总计数和两列的总和。

OrdertTable

    SELECT *
      ,[userID] as id
      ,[itemPriceType1] as itemCost1
      ,[itemPriceType2] as itemCost2
  FROM order;

查询结果:

想要的结果:

我想得到总 COUNT 和总 SUM。

例如。

Count = 4
Sum = 700 

我的尝试

var result1 = (from col1 in db.Orders 
               where col1.itemPriceType1 != 0 
               select col1).Count();

var result2 = (from col1 in db.Orders 
               where col1.itemPriceType2 != 0 
               select col1).Count();

ViewBag.count = (result1+result2);

在上面的查询中,我给出了正确的计数,即 4。问题,我该如何改进这个查询?也可能得到总和?

【问题讨论】:

  • 总和是什么意思?从您的示例中不清楚。无法从提供的数字中弄清楚从哪里获得 700。两列的总和不是 0 吗?
  • 给出的示例使问题难以理解。请使用正确的例子。

标签: c# asp.net-mvc linq sum


【解决方案1】:

一种方法是对一个属性执行操作,对另一个属性执行操作,然后将两个结果相加:

获取计数:

var count = db.Orders.Count(o => o.itemPriceType1 != 0) + 
            db.Orders.Count(o => o.itemPriceType2 != 0);

总和:

var sum = db.Orders.Sum(o => o.itemPriceType1) + 
          db.Orders.Sum(o => o.itemPriceType2);

【讨论】:

    猜你喜欢
    • 2017-02-16
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多