我有以下表格结构.我想选择不同的CustomerId和CustomerName,TotalCost.
这是表结构和列数据类型.
LogId (int) CustomerId (string) CustomerName (string) Cost (int)
Logid / CustomerId / CustomerName / Cost
> 1 2031 John Steward 20
> 2 2035 Mary Joe 10
> 3 2034 Robert Tuck 30
> 4 2031 John Setward 12
> 5 2036 Luke David 15
> 6 2033 Kevin Le 14
> 7 2035 Mary Joe 9
> 8 2036 Luke David 8
> 9 2035 Mary Joe 18
> 10 2037杰西汤姆25
> 11 2032年安东尼詹姆斯27
> 12 2033 Kevin Le 26
Update 1
这是我到目前为止的尝试查询:
Dim db As New DemoDataContext() Dim query = From log In db.LogRecords _ Where log.Cost> 10 _ Group log By New With {log.CustomerId,log.CustomerName} Into g() _ Select New With {g.CustomerId,g.CustomerName,.Cost = g.Sum(Function(log) log.Cost)}
但它使错误消息Range变量名只能从没有参数的简单或限定名称推断.
Update 2
Dim queryResult = (From log In db.LogRecords _ Group log By log.CustomerId,log.CustomerName Into Cost = Sum(log => log.Cost ) _ Select New With { CustomerId,CustomerName,TotalCost }) For Each q In queryResult Next
解决方法
如果我正确理解您的要求,这样的事情应该在C#中起作用:
var query = from row in dataTable group row by new { row.CustomerId,row.CustomerName } into g select new { g.Key.CustomerId,g.Key.CustomerName,Cost = g.Sum(row => row.Cost) };
[编辑]
Dim query = From log In db.LogRecords _ Group log By log.CustomerId,log.CustomerName _ Into Cost = Sum(log => log.Cost) _ Select CustomerId,Cost