LINQ加入2个数据表并使用SUM AND GROUP BY

时间:2011-05-17 15:29:25

标签: c# linq join group-by sum

我根本无法解决这个问题,因此非常感谢任何专家的帮助。

我正在尝试(如主题建议的那样)在邮政编码上加入2个数据表,但返回一个表,该表按州分组并具有销售额的SUM()。

这是我的麻烦的最新版本:

var results =(
    from a in dtList.AsEnumerable()
    join b in dtListCoded.AsEnumerable()
    on a.Field<string>("ZIP") equals b.Field<string>("zip") 
    group a by {a.Field<string>("StateCode")} into g
    select new { 
       StateCode = a.Field<string>("StateCode"),
       SumSales = b.Sum(b => b.Field<double>("SUMSales"))
    });

我可以加入2个表,但它得到我需要的结果似乎是棘手的一点。如果需要,我将只需要进行2次查询,但这看起来有点落后。

提前致谢。

1 个答案:

答案 0 :(得分:2)

两个查询不会慢一些(它们应该在执行时汇集到一个SQL查询中),并且在调试和可重用时会更加可读,透明。我建议把它分解。