vb.net DataTable 使用类似SQL语法的Group by-线上等

这个表格是DataTable,不是来自SQL的数据

请问如何写类似SQL的语法,将表格变成希望结果呢

Select 省,城市,sum(金额) from table
group by 省,城市 order by 金额 desc

这个语法在datatable上来写出一样的效果

图片说明

图片说明

图片说明

1个回答

Dim query = dataTable.Rows.Cast(OfType DataRow)()
.GroupBy(Function(x) x("省") & "," & x("城市"))
.Select(Function(x)  New With {.省 = x.Key.Split(",")(0), .城市 =  x.Key.Split(",")(1), .金额 = x.Select(Function(y) Val(y("金额"))).Sum() })
For Each x In Query
MsgBox(x.省 + x,城市 + " " + x.金额.ToString())
Next
手写的,不对的话给你修改
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复weixin_40187983: 你可以再开一个DataTable,然后在 for each里面Rows.Add
大约一年之前 回复
weixin_40187983
weixin_40187983 我试出来了,但是最后的结果是以msgboxd 型式,要怎么还原成datatable呢?
大约一年之前 回复
weixin_40187983
weixin_40187983 回复操作员马善福(贵阳专业挖机): 我上面那句改成了of,但是從group by的後面還是有錯的
大约一年之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 OfType -> Of
大约一年之前 回复
weixin_40187983
weixin_40187983 你好,我用你的语法来试,有些地方有错,请你帮我看一下,还是是不是需要用一些引用
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问