Sql LLBL Gen Pro中的子查询
我是LLBL gen pro的新手,我必须使用LLBL gen pro编写子查询,但我没有得到任何如何编写的示例。 这是我必须写的查询,我知道如何定义字段、关系和谓词表达式Sql LLBL Gen Pro中的子查询,sql,llblgenpro,Sql,Llblgenpro,我是LLBL gen pro的新手,我必须使用LLBL gen pro编写子查询,但我没有得到任何如何编写的示例。 这是我必须写的查询,我知道如何定义字段、关系和谓词表达式 select UserId, TransactionId from UserTransaction where TransactionId in ( select MaxId as TransactionId from (SELECT MAX([TransactionId]) as MaxId, userid FROM
select UserId, TransactionId from
UserTransaction
where TransactionId in
(
select MaxId as TransactionId from
(SELECT MAX([TransactionId]) as MaxId, userid
FROM [UserTransaction]
group by userid) u1
inner join [UserTransaction] c2 on u1.MaxTId = c2.CCLeadTransactionId
where UserTypeId in (4,5)
)
这是我的桌子结构
UserTransaction
TransactionId userid UserTypeId
如何编写此查询
select MaxId as TransactionId from
(SELECT MAX([TransactionId]) as MaxId, userid
FROM [UserTransaction]
group by userid) u1
inner join [UserTransaction] c2 on u1.MaxTId = c2.CCLeadTransactionId
where UserTypeId in (4,5)
基本思想是创建父查询可以使用的内部查询 下面的示例代码(尚未测试,可能包含拼写错误)
var qf=newqueryfactory();//创建您的创建工厂
var subFilterQuery=qf.Create()
.Select(()=>UserTransaction.TransactionId.SetAggregateFunction(AggregateFunction.Max).ToValue())//选择最大事务值
//加入
.GroupBy(UserTransactionFields.UserId);
var parentQuery=qf.Create()
.选择(()=>新建{
UserId=UserTransactionFields.UserId.ToValue(),
TransactionId=UserTransactionFields.TransactionId.ToValue(),
})
.Where(UserTransactionFields.TransactionId.In(subFilterQuery.ToScalar());//使用创建查询作为筛选器
var qf = new QueryFactory(); // create your create factory
var subFilterQuery = qf.Create()
.Select(()=> UserTransaction.TransactionId.SetAggregateFunction(AggregateFunction.Max).ToValue<int>()) // select max transaction value
// do joins, etc
.GroupBy(UserTransactionFields.UserId);
var parentQuery = qf.Create()
.Select(()=> new {
UserId = UserTransactionFields.UserId.ToValue<int>(),
TransactionId = UserTransactionFields.TransactionId.ToValue<int>(),
})
.Where(UserTransactionFields.TransactionId.In(subFilterQuery.ToScalar())); // use create query as filter