2012-12-21 28 views
7

Tôi đang cố gắng lấy các giá trị tổng hợp từ bảng dữ liệu. Nhưng không thể hiểu được làm thế nào. Đã thấy một số ví dụ trong C#, nhưng không thể dịch các ví dụ đó thành vb.net.Nhóm có thể định cấu hình bằng LINQ trong vb.net

Tôi có bảng dữ liệu

Month, campaign, sales, leads, gross 
1   1    5   10  1000 
1   2    0   5   0 
2   1    2   0   300 
2   2    1   3   200 

tôi cần để có được một kết quả:

Month, sales, leads, gross 
1   5  15  1000 
2   3   3   500 

Tôi không muốn lặp và kết hợp các giá trị bằng tay. Vui lòng giúp

Trả lời

9

Bạn muốn Group by Month? Bạn có thể sử dụng Sum để tổng hợp các nhóm:

Dim query = From row In dt 
     Group row By Month = row.Field(Of Int32)("Month") Into MonthGroup = Group 
     Select New With { 
      Key Month, 
      .Sales = MonthGroup.Sum(Function(r) r.Field(Of Int32)("Sales")), 
      .Leads = MonthGroup.Sum(Function(r) r.Field(Of Int32)("Leads")), 
      .Gross = MonthGroup.Sum(Function(r) r.Field(Of Int32)("Gross")) 
     } 

For Each x In query 
    Console.WriteLine("Month:{0} {1} {2} {3}", x.Month, x.Sales, x.Leads, x.Gross) 
Next 

Đây là hỗn hợp của truy vấn LINQ và cú pháp phương pháp.

+0

Cảm ơn bạn. Đoạn mã đã gây ra ngoại lệ truyền. Nhưng một khi tôi đã thay đổi từ "Of Int32" thành "Of Decimal", tất cả đều là sự quyến rũ. – Nick

+0

Cảm ơn bạn vì điều này, tôi đã vật lộn với một vấn đề tương tự cho lứa tuổi – majjam

Các vấn đề liên quan