查閱參考 :https://zhidao.baidu.com/question/373715544347612924.html
我們有一個(gè)表:
問題:我們想把同一Date 而且 同一 Code的Hour相加合并,例如這里我們需要把 Date為2021-09-27 Code為aa的Hour合并相加,所以Date 為 2021-09-27 Code 為 aa 的Hour 相加后為 6,合并后相當(dāng)于以下效果:
分析思路:利用group by可以合并 以Date和Code作為字典的唯一關(guān)鍵字,Hour相當(dāng)于Value
操作:
首先讀取表:
然后我們輸出一下通過 Date 和 Code 合并同類項(xiàng)總共有多少個(gè):
dt.Rows.Cast(Of System.Data.DataRow).
GroupBy(Function(r) r("Date").ToString + r("Code").ToString).Count.ToString
這邊的輸出是8個(gè)唯一的項(xiàng)根蟹,跟圖二是一樣的個(gè)數(shù)
然后我們看一下所有符合第一個(gè)(0)項(xiàng)的Hour是多少:
dt.Rows.Cast(Of System.Data.DataRow).
GroupBy(Function(r) r("Date").ToString + r("Code").ToString)(0).
Sum(Function(y) CDbl(y("Hour").ToString)).tostring
這邊是6個(gè)hour, 跟圖二相符
我們可以寫一個(gè)循環(huán)去拿到左右的唯一項(xiàng)相加后的Hour:
最后結(jié)果:
如果想最后輸出的DataTable像圖二一樣可以參考我以前的帖子,創(chuàng)建一個(gè)新的DataTable,每新增一行加入Date Code Hour