【发布时间】:2018-07-20 12:41:19
【问题描述】:
我想从下面的代码中删除 GROUP BY 子句。我怎么能这样做。
var newDt = dt.AsEnumerable()
.GroupBy(r => r.Field<string>("BATCH NUM"))
.Select(g =>
{
var row = dt.NewRow();
row["BATCH NUM"] = g.Key;
row["QTY"] = g.Sum(r => Convert.ToInt32(r.Field<string>("QTY")) + Convert.ToInt32(r.Field<string>("BONUS")));
row["PROD ID"] = String.Join(",", g.Select(x => x.Field<string>("PROD ID")).Distinct());
// row["PROD ID"] = g.Select(r => r.Field<string>("PROD ID"));
return row;
}).CopyToDataTable();
它会产生问题,当我们有两个不同的“PROD ID”但具有相同的“BATCH NUM”时,它将“PROD ID”组合到一个字段中,它将两个 PROD ID 与相同的批次处理。 Here is a Image you can see
我想要的结果如下。
【问题讨论】:
-
去掉
GroupBy,你期待什么结果? -
当我删除 group by 子句时,我无法解决参考错误。
-
把标记放在
.GroupBy旁边,按删除键。完成 - 从代码中删除。 -
基本上我不想对行进行分组,我只想复制你可以看到的那 3 列的值。
-
@mrjahanzaibniazi:然后编辑你的问题并解释它