Linq - 分组并应用于单个字段

时间:2014-07-07 16:35:22

标签: vb.net linq group-by distinct

我有一个sql表,我在其中存储由客户端进行的基于订阅的购买,并且由于我的应用程序上存在旧的错误,我的行具有不同的用户名但存在相同的事务处理。

我正在尝试构建一个只会检索我感兴趣的结果的查询,而不是那些具有相同用户名和transactionid的行组(这是可能的和正常的)。

这是我当前的查询:

Dim pquery = From r In dc.PurchaseRecords
                             Where r.expired = False AndAlso r.status = 1
                             Group r By r.transactionId Into g = Group
                             Where g.Count() > 1

此查询当前返回按预期共享相同transactionid的组,但在这些组中,我遇到的情况是该组仅包含相同用户名的行,而不包含共享相同transactionid的不同用户名。

如何在此查询中应用distinct,保持我现在拥有的相同输出结构,但只返回由具有相同transactionid的不同用户名组成的组?

感谢您的帮助。

编辑:我想返回一个查询,该查询的组包含我提到的这些条件所适用的表的每个完整行。

1 个答案:

答案 0 :(得分:1)

这将返回具有相同transactionid的不同用户名的组

Dim pquery = From r In dc.PurchaseRecords
                             Where r.expired = False AndAlso r.status = 1
                             Group r By r.transactionId Into g = Group
                             Where g.GroupBy(Function(x) x.UserName).Count() > 1