datatable 动态列 分组

钗于奁内待时飞 2014-09-22 11:32:37

因为这个datatable 是动态的列的。我使用linq 2 datatable 。 这是我的代码:
var query = from t in result.AsEnumerable()
group t by new { t1 = t.Field<String>("name") } into m
select new
{
name = m.First().Field<String>("name"),
Year2014u = m.Sum(p => p.Field<int>("2014上半年")),
Year2014d = m.Sum(p => p.Field<int>("2014下半年")),
Year2015u = m.Sum(p => p.Field<int>("2015上半年")),
Year2015d = m.Sum(p => p.Field<int>("2015下半年"))

};

var listGroupBy = query.ToList();

不能统计动态列的情况! 各位高手、大神们。谢谢了!
...全文
196 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Goes By 2014-09-22
  • 打赏
  • 举报
回复
var query = from t in result.AsEnumerable() group t by new { t1 = t.Field<String>("name") } into m select new { name = m.First().Field<String>("name"), Year2014u = m.Sum(p => p.Field<int>("2014上半年")), Year2014d = m.Sum(p => p.Field<int>("2014下半年")), Year2015u = m.Sum(p => p.Field<int>("2015上半年")), Year2015d = m.Sum(p => p.Field<int>("2015下半年")) }; var listGroupBy = query.ToList(); 正确的呀!
gxingmin 2014-09-22
  • 打赏
  • 举报
回复
引用 4 楼 u012647695 的回复:
[quote=引用 2 楼 gxingmin 的回复:] 哪些列是动态咧?
根据name 去找到相同名字的数据如:上海总公司会找到一条,广东分公司会找到2条,然后把2014上半年、2014下半年、2015上半年、2015下半年的值累加,除了name是固定一定会有的,其他的列都是动态的(2014、2015、2016、2017等)[/quote] 直接通过sql语句分组查询吧
於黾 2014-09-22
  • 打赏
  • 举报
回复
你应该循环列数,按照列的索引去做累加,而不是固定写死列名
  • 打赏
  • 举报
回复
引用 2 楼 gxingmin 的回复:
哪些列是动态咧?
根据name 去找到相同名字的数据如:上海总公司会找到一条,广东分公司会找到2条,然后把2014上半年、2014下半年、2015上半年、2015下半年的值累加,除了name是固定一定会有的,其他的列都是动态的(2014、2015、2016、2017等)
  • 打赏
  • 举报
回复
引用 1 楼 Chinajiyong 的回复:
在描述清楚点,你要怎么统计??
根据name 去找到相同名字的数据如:上海总公司会找到一条,广东分公司会找到2条,然后把2014上半年、2014下半年、2015上半年、2015下半年的值累加,除了name是固定一定会有的,其他的列都是动态的(2014、2015、2016、2017等)
gxingmin 2014-09-22
  • 打赏
  • 举报
回复
哪些列是动态咧?
EnForGrass 2014-09-22
  • 打赏
  • 举报
回复
在描述清楚点,你要怎么统计??

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧