LLBL GEN PRO 3.1 Select 不同的两个字段

LLBL GEN PRO 3.1 Select distinct two fields

是否可以在 LLBL GenPro 3.1 中对两个字段使用 DefineFieldAggregateFunction.SumDistinct? 例如我有这个:

ResultsetFields myFields = new ResultsetFields(2);

//I want this amount to be distinct but with specific userId
myFields.DefineField(UserFields.Amount, 0, AggregateFunction.SumDistinct); 
myFields.DefineField(UserFields.Id, 1, "ResultCount", AggregateFunction.CountDistinct);

在 SQL 中,我希望它以这样的方式结束:

SELECT DISTINCT SUM(u.Amount), u.Id 
FROM Users u
  INNER JOIN someOtherTablesat ON sot.UserId = u.Id
GROUP BY 
  u.Id

我在 LLBL 中加入的这个连接数量重复,因为 someOtherTable 同一用户的数据很少。由于其他原因,我需要加入。 那么,是否可以使用 LLBL 来做到这一点?如何做到这一点?

最后我找到了解决方案:

var fields = new ResultsetFields(1);
fields.DefineField(OrderFields.Freight, 0, AggregateFunction.Sum);

var bucket = new RelationPredicateBucket();
bucket.PredicateExpression.Add(new FieldCompareSetPredicate(
    OrderFields.OrderId, null, OrderDetailFields.OrderId, null, 
    SetOperator.In, (OrderDetailFields.ProductId ==1)));

DataTable dynamicList = new DataTable();

using (var adapter = new DataAccessAdapter())
{
    adapter.FetchTypedList(fields, dynamicList, bucket);
}

在 SQL 中更像是

Select SUM(Freight) from Orders
Where OrderID IN 
(
    Select OrderID from [Order Details] where ProductID = 1
)