.net 在数据表中的列中使用GROUPBY
我对.net中的Linq查询有问题。 我将这个简单的表存储在一个名为DBToUse的数据表中。 在我要执行的查询之前,表已经按主单位进行了筛选.net 在数据表中的列中使用GROUPBY,.net,linq,datatable,.net,Linq,Datatable,我对.net中的Linq查询有问题。 我将这个简单的表存储在一个名为DBToUse的数据表中。 在我要执行的查询之前,表已经按主单位进行了筛选 PrimaryUnit - ErrorCode - ErrorDescription - Count Unit3 2 axe 3 Unit3 1 no source Unit3 1 axe 1 Unit3
PrimaryUnit - ErrorCode - ErrorDescription - Count
Unit3 2 axe 3
Unit3 1 no source
Unit3 1 axe 1
Unit3 1 axe 2
Unit3 1 axe 2
Unit3 2 axe 3
Unit3 3 axe 3
我希望下表使用GROUPBY子句
Error Code and Description - Count
2 - axe 3 2
1 - axe 2 2
3 - axe 3 1
1 - axe 1 1
1 - no source 1
我从这个简单的查询开始
Dim query = From row In DBToUse.AsEnumerable()
Select PU = DBToUse.Columns("PrimaryUnit"), C = DBToUse.Columns("Count"), EC = DBToUse.Columns("ErrorCode"), ED = DBToUse.Columns("ErrorDescription")
Group By EC Into prova = Group
1-有人能帮我在两列中使用Group By吗
2-为什么当我在调试模式下运行查询并对其进行处理时,会收到这样一条消息“expected a type”
感谢大家使用匿名类型,这应该可以:
Dim errorGroups = From row In DBToUse
Let puError = New With {
Key .PrimaryUnit = row.Field(Of String)("PrimaryUnit"),
Key .ErrorCode = row.Field(Of String)("ErrorCode"),
Key .ErrorDescription = row.Field(Of String)("ErrorDescription")
}
Group row By puError Into puErrorGroup = Group
Order By puErrorGroup.Count() Descending
Dim aggregatedTable As DataTable = DBToUse.Clone() ' empty table, same columns '
For Each grp In errorGroups
Dim row = aggregatedTable.Rows.Add()
row.SetField("PrimaryUnit", grp.puError.PrimaryUnit)
row.SetField("ErrorCode", grp.puError.ErrorCode)
row.SetField("ErrorDescription", grp.puError.ErrorDescription)
row.SetField("Count", grp.puErrorGroup.Count())
Next