代码之家  ›  专栏  ›  技术社区  ›  Mohammad Dayyan

SQL表行与LINQ的总和?

  •  3
  • Mohammad Dayyan  · 技术社区  · 14 年前

    SQL数据库中有一个表,如下所示:

    SampleTable:

    -----------------------
     id | number | price 
    -----------------------
     1  |   3    | 300
     2  |   1    | 200
     3  |   5    | 100
     4  |   10   | 10
     5  |   30   | 30
     6  |   1    | 500
    -----------------------
    

    我想计算总价格如下:

    in each row => var SumOfEachRow = number * price;
    Total Price = sum of SumOfEachRow;
    

    因此 Total Price 将是3100。

    现在,我想用linq计算它。 例如:

    int TotalPrice = from q in SampleTable
                     select new
                     {
                        TotalPrice = q.number * q.price 
                     }.Sum();
    

    上行代码返回错误的结果!!!! 你能指导我吗?谢谢。

    2 回复  |  直到 14 年前
        1
  •  4
  •   Frédéric Hamidi    14 年前

    尝试:

    decimal TotalPrice = SampleTable.Sum(q => q.number * q.price);
    
        2
  •  1
  •   TalentTuner    14 年前

    试试这个

      var TotalPrice = from q in SampleTable.AsEnumerable()
                             let y = Convert.ToInt32(q["number"]) * Convert.ToInt32(q["price"])
                             select y;
    
          int totalPrice =  TotalPrice.Sum();