Linq查询SUM和COUNT

时间:2014-10-13 19:26:17

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

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

Order tTable

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

查询结果:

enter image description here

期望的结果:

我想得到总COUNT和总和。

EG。

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.问题,如何改进此查询?也可能得到这笔钱?

1 个答案:

答案 0 :(得分:0)

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

要计算:

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);