VB.NET LINQ加入2个表,然后按列分组然后求和

时间:2012-12-01 17:29:38

标签: vb.net linq group-by sum

Datatable1

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 个答案:

答案 0 :(得分: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