2011-11-09 40 views
1

我对linq很陌生,我试图提出一个针对数据集的linq查询,该数据集将根据分组记录返回最大计数值。通过在linq中分组返回最大记录数

LINQ查询,我至今是

Dim sales = From soldData In SDOSoldDataTable.AsEnumerable 
     Where (soldData.Field(Of DateTime)("sold_date") >= lastMonthStartDate _ 
     And soldData.Field(Of DateTime)("sold_date") <= lastMonthEndDate) _ 
     Group soldData By username = soldData.Field(Of String)("user_name") _ 
     Into Group _ 
     Select _ 
      username, _ 
      numSales = Group.Count() 

该查询给了我每销售人员(用户名)销售的数量在过去一个月。我现在想要返回上个月销售额最高的销售人员的姓名。我猜这是一种使用Max()对销售的Aggregate查询类型,但我似乎无法弄清楚。

感谢, 奥马尔

回答

0
Dim LargestSale = (From sale In sales 
        Order By sale.numSales Descending 
        Select sale).First() 
+0

谢谢,但我现在得到对“销售” “式的‘对象’不可查询的表达不同。确保你是不是缺少程序集引用和/或LINQ提供程序的名称空间导入。“ 我想我输入正确的库: 进口System.Data 进口System.Linq的 进口System.Linq.Expressions 进口System.Data.DataTableExtensions 进口将System.Data.Linq – Omar

+0

我只是一派错误,一些结果提到了“选项推断”。我打开了它,但没有区别。另外,我正在NET 4.0中工作,这有所作为。 – Omar