C#用LINQ操作Datatable数据库 5C

现在有一个四列的Datatable
第一列为5或6个数字,要将除去最后两个数字之外相等的行&&第三列相同的行的第二列计算平均值,第四列加起来之后生成一个新的行,
把这些新的行存入一个新的Datatable,用LINQ怎么写啊!!
比如下面是部分截图
图片说明
要求新的Datatable是这样:
930 16.59 B 2080+400+..+2900
930 16.58 S 1000
931 16.59 B 600+400+..+1000
931 16.56 S 1500

4个回答

不清楚你的具体要求,无非就是aggregate或者groupby

第一列截取保留前三位,然后根据第二列分组求(感觉你这里应该是第三列),然后就是求和sum(第四列)。
var q =from p in db
group p by new
{
p.第二列,
p.第三列
}
into g
select p.第一列.substring(0,3),
new
{
g.key,
g
}
sum(p.第四列)
order by p.第一列.substring(0,3)

mingzaiwang
明仔丶 求和哪里写错了 应该按分组球的方式去写
接近 3 年之前 回复

var q =from p in db
group p by new
{
p.第二列,
p.第三列
}
into g
select p.第一列.substring(0,3),
new
{
g.key,
g.sum=p.Sum(第四列 => y.第四列)
}
order by p.第一列.substring(0,3)

差不多就是这样没有数据不能保证百分百但是差不多了

可以写多个语句,建立一个需要的结果类,var s=new list<结果类>,
然后在foreach,这个s
手动建立一个Datatable填充了
是不是可以这样?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!