【问题标题】:select multiple columns using linq and sum them up使用 linq 选择多列并将它们相加
【发布时间】:2011-02-22 02:07:03
【问题描述】:

如何选择多列并计算总金额。

例如,在我的数据库中,我得到了一些名为:

5hunderedBills, 2 百元钞票, 1 百元钞票, 等等

这些字段的值例如:

5, 2、 3

总和是:

5hunderedBills * 5 + 2hunderedBills * 2 + 1hunderedBills * 3

如何在一个 select 语句中使用 LINQ 做到这一点?

【问题讨论】:

    标签: c# database linq select sum


    【解决方案1】:

    以下代码将对所有这三列的权重求和,并返回所有行的总和。

    YourDatabaseContext.Where( item => item.Date == someCriteria).Sum( item => item.FiveHundredBills * 5 + item.TwoHundredBills * 2 + item.OneHundredBills );
    

    如果您需要每行的总和列表,请交换方法 Sum()Select()

    YourDatabaseContext.Where( item => item.Date == someCriteria).Select( item => item.FiveHundredBills * 5 + item.TwoHundredBills * 2 + item.OneHundredBills );
    

    【讨论】:

    • 嗨,这可行,但我忘了提到应该有一个 where 子句来检查日期。如何实现 where 子句?这就是我现在需要知道的。谢谢!
    • @Yustme,向 LINQ 查询添加了 Where() 子句。将来,请查看此网站以获取一组好的起始示例:msdn.microsoft.com/en-us/vcsharp/aa336746.aspx 并安装 LinqPad。
    • 嗨,我已经通过 codeproject.com 弄清楚了那个有 101 个示例的 ms.com 站点,已经走了 50 次。我会研究 LinqPad。感谢您的帮助!
    【解决方案2】:
    var sum = from b in db.bills
    select b.5hunderedBills + b.2hunderedBills + b.1hunderedBills ;
    

    db 是您的 LINQ DataContext 的名称,bills 是相关表的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-16
      • 2020-01-18
      • 2014-06-03
      • 2014-11-03
      • 2015-07-28
      • 2020-10-08
      • 2013-09-06
      • 1970-01-01
      相关资源
      最近更新 更多