【问题标题】:Convert Query to Lambda Expression将查询转换为 Lambda 表达式
【发布时间】:2015-04-14 02:25:41
【问题描述】:

如何为以下 SQL 查询编写 lambda 表达式:

Sales_This_Month = SUM(CASE 
                         WHEN Trxn_Type_Code IN ('S','PS','RTN','GS','GR') 
                              AND YEAR(Trxn_Date) = YEAR(GETDATE()) 
                           THEN Amount 
                           ELSE 0 
                       END)

【问题讨论】:

    标签: sql linq lambda sql-to-linq-conversion


    【解决方案1】:

    您可以在数据源对象上应用以下 Lambda 表达式。这里salesData 是您的数据源对象。想知道更多here在哪里。

     var result = salesData.Where(x=> (IList<string>)new [] { "S","PS","RTN","GS","GR" }).Contains(x.Trxn_Type) &&  Trxn_Date.Year == DateTime.Now.Year).Sum(x=>x.Amount);
    

    【讨论】:

      【解决方案2】:

      尝试以下方法:

      var result = salesData.Select(d => d.Where(x=> (IList<string>)new [] { "S","PS","RTN","GS","GR" })
      .Contains(x.Trxn_Type) &&  Trxn_Date.Year == DateTime.Now.Year)).Count!=0?
      d.Where(x=> (IList<string>)new [] { "S","PS","RTN","GS","GR" })
      .Contains(x.Trxn_Type) &&  Trxn_Date.Year == DateTime.Now.Year).Sum(x=>x.Amount) : 0);
      

      【讨论】:

        猜你喜欢
        • 2020-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多