linq分组汇总
var qrLocal = from h in
                               (from u in m_dataSvc.Entities.GdsPcjgqds
                                where u.JH == m_jh && u.JB == "0"
                                select new
                                {
                                    JH=u.JH,
                                    CW=u.CW,
                                    NY=u.NY,
                                    YCYL=u.YCYL,
                                    HSYCYL=u.HSYCYL,
                                    YCSL=u.YCSL
                                })
                           group h by new {h.JH, h.CW, h.NY } into g
                           select new
                           {
                               JH=g.Key.JH,
                               NY = g.Key.NY,
                               CW = g.Key.CW,
                               YCYL = g == null ? 0 : g.Sum(a => a.YCYL),
                               HSYCYL = g == null ? 0 : g.Sum(a => a.HSYCYL),
                               YCSL = g == null ? 0 : g.Sum(a => a.YCSL)
                           };
             foreach (var sum in qrLocal)
             {
                 DataRow row = table.NewRow();
                 row["JH"] = m_jh;
                 row["NY"] = sum.NY;
                 row["XC"] = sum.CW;
                 row["YCYL"] = sum.YCYL;
                 row["HSYCYL"] = sum.HSYCYL;
                 row["YCSL"] = sum.YCSL;
                 table.Rows.Add(row);
             }
报错为无法比较类型为“System.Linq.IGrouping`2”的元素。仅支持基元类型(例如 Int32、String 和 Guid)和实体类型。
如何解决
------解决方案-------------------- where u.JH == m_jh && u.JB == "0"
这两个字段分别是什么类型
------解决方案--------------------
http://topic.csdn.net/u/20101111/09/ea049af5-d079-4a13-8c1d-e1a3350a830d.html
TIM 的这个帖子你看了没?里面有关于 linqpad 这个工具
学习和应用linq还比较容易上手的  
另外看你这个错误提示,应该是你进行 sum的时候,发现无法进行聚合,原因是类型 不是 数字类型,
你看下哪里出错的,针对对应的,进行下类型转换