http://www.experts-exchange.com/Programming/Languages/.NET/LINQ/Q_24011531.html
Sum a data table using LINQ
==========================================================
用上面的方式,又會碰到一些轉型的問題
integer 無法轉成 IEnumrelb(of T) T -> datarow
要再想其他方法
靠過不暸,目前不知道怎麼弄才可以過型別問題,
應該是可以,只是我LINQ太不會了
嘗試透過 table的 select 解決問題
靠過不暸,目前不知道怎麼弄才可以過型別問題,
應該是可以,只是我LINQ太不會了
嘗試透過 table的 select 解決問題
在 DataTable 進行 Group by 並且取 Sum 的運算
透過 DataSet 加入一個該Table的複本,
然後坐一個Relation
透過Relation去做
碰到說 Relation 必須在你有設定 table 資料的 主鍵欄位是哪個
並且該 table 已經依照主鍵去區分資料,不會有重複主鍵值的出現
跟現在的需求根本不符
'設定table 的 主鍵
Dim keys(1) As DataColumn
keys(0) = tblMRP.Columns("物料編號")
tblMRP.PrimaryKey = keys
'相同物料合併作加總
'分組並計算
Dim grouped As New DataTable
'以物料編號做 Distinct
grouped = tblMRP.DefaultView.ToTable("DistinctTable", True, "物料編號")
ds.Tables.Add(grouped)
'在DataSet中,以 物料編號 去做Table的Relation (關係名稱,父,子)
'使用Relations,必須將資料作 Primary key 的設定
ds.Relations.Add("Relation1", tblMRP.Columns("物料編號"), grouped.Columns("物料編號"))
grouped.Columns.Add("SumValue", Type.GetType("System.Decimal"), "Sum(Child.預估用量)")
For Each dr In grouped.Rows
'Dim key As DataRow = dr("GroupKey")
'Dim value As DataRow = dr("SumValue")
tblMRP.Rows.Add(dr)
Next
有夠不順
=====================================================================
透過 ADO.NET的原始方法
先用DefaultView建立一個 Distinct 副本的 table (只含有Primary Key)
然後再加入其他原始table 應該有的欄位
之後去比對 Distinct table 跟 非Distinct table 兩個資料
就可以做後面的加總處理
碼的...
沒有留言:
張貼留言