【问题标题】:Need help in converting SQL query to LINQ在将 SQL 查询转换为 LINQ 时需要帮助
【发布时间】:2017-02-02 07:09:03
【问题描述】:

我是 LINQ 世界的新手,因此我坚持将一个 sql 查询转换为 LINQ。 我的 SQL 查询是:

select COUNT(DISTINCT PAYER) as count, 
       PPD_COL FROM BL_REV 
where BL_NO_UID = 1084 
GROUP BY PPD_COL

想要的输出是:

 Count   PPD_COL
  12       P
  20       C

我在 LINQ 中写了如下内容:

 var PayerCount = from a in LstBlRev where a.DelFlg == "N"
                  group a by new { a.PpdCol} into grouping
                  select new
                  {
                      Count = grouping.First().PayerCustCode.Distinct().Count(),
                      PPdCol = (grouping.Key.PpdCol == "P") ? "Prepaid" : "Collect"
                  };

但它没有给我想要的输出。 PPD_COL 值 P & C 返回的计数相同。我在这里缺少什么?

【问题讨论】:

    标签: sql linq lambda


    【解决方案1】:

    如下更改groupby。在 group 组中只需要您需要的属性,然后在 thr by 中不需要创建匿名对象 - 只是您分组依据的一个属性。

    var PayerCount = from a in LstBlRev 
                     where a.DelFlg == "N"
                     group a.PayerCustCode by a.PpdCol into grouping
                     select new
                     {
                         Count = grouping.Distinct().Count(),
                         PPdCol = grouping.Key == "P" ? "Prepaid" : "Collect"
                     };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-28
      • 1970-01-01
      • 2014-02-01
      • 2011-06-04
      相关资源
      最近更新 更多