2012-12-01 97 views
0

Datatable1VB.NET LINQ加入2個表,然後由欄目組再總結

Name Quantity 
A  2 
B  5 
C  3 
D  4 

Datatable2

Name Quantity 
    A  1 
    B  3 
    F  4 
    G  4 

預期結果加入這兩個數據表分組依據名稱再總結數量爲每個組把後在一個新的數據表中的結果

Name Quantity 
    A  3 
    B  8 
    C  3 
    D  4 
    F  4 
    G  4 

是否有可能使用LINQ?請注意,我訪問的字段值爲row.Field(of T)("Name")

+1

我現在還不能測試這個,兩個集合到IEnumerables並使用Concat()。之後,你可以GroupBy名稱和每個組,名稱將是'grp.Key'和數量將是'grp.Sum(row => row.Field(的整數)(「數量」))''。然後你把結果放到一個DataTable中。 –

回答

1

試試這個。我認爲你需要聯盟,如果兩個表都是相同的

Dim query = From x in ((From p in DataTable1 
       Select p).Union(From pd in DataTable2 Select pd)) 
       Group x By Key = x.Name Into grouping = Group 
       let myProdSum = grouping.Sum(Function(x) => x.Quantity) 
       Select New With {.Name = grouping.Key, .TotalQty = myProdSum} 

ForEach s in query 
    Console.WriteLine("{0} : {1}" , s.Name, s.TotalQty) 
Next