我有一个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的不同用户名组成的组?
感谢您的帮助。
编辑:我想返回一个查询,该查询的组包含我提到的这些条件所适用的表的每个完整行。
答案 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