【发布时间】:2017-02-13 19:46:06
【问题描述】:
这是我的第一个数据表 dt
sscode scons cscons cstagged
A 10 2 20
A 10 2 20
B 10 2 40
这是我的第二个数据表 dt1
Unit sscode
A101 A
A101 A
B101 B
我想要这个输出
Unit scons cscons cstagged
A101 20 4 40
执行此查询时出现错误。 这是我的代码
IEnumerable<DataRow> result = from data1 in dt.AsEnumerable()
join data2 in dt1.AsEnumerable()
on data1.Field<string>("sscode") equals
data2.Field<string>("substation_code")
group data2.Field<string>("Unit") by new {unit= data2.Field<string>("Unit")} into grp
orderby grp.Key.unit
select new
{
unit = grp.Key.unit,
sscons = grp.Sum(s => s.Field<string>("cscons")),
cscons = grp.Sum(s => s.Field<string>("cscons")),
cstagged = grp.Sum(s => s.Field<string>("cstagged"))
};
result.CopyToDataTable();
【问题讨论】:
-
你能分享错误信息吗?
-
在 (s => s.Field
("cscons")) s 不包含 ' ' 的定义的情况下出错 -
你在计算字符串的总和吗?
-
是的,但我不知道默认情况下在 datattable 中是哪种数据类型
-
默认数据表的数据类型是DataTable。