我无法将一个简单的查询转换为LLBLGen Pro动态查询。我需要转换像SQL一样的东西(但是我将传递区域的值,要检查的id和所需的名称):
SELECT Parent.Id
FROM Parent INNER JOIN Child
ON Child.ParentId = Parent.Id
WHERE Parent.Region = '1'
AND Parent.Id IN (1, 2, 3, 4, 5)
GROUP BY
Parent.Id
HAVING SUM(CASE WHEN child.Name IN ('Required1', 'Required2', 'Required3') THEN 1 ELSE 0 END) != 3
但是,我很难将Having子句转换为LLBL等价物。
这是我到目前为止所做的:
var q = qf.Create()
.From(qf.ParentView
.InnerJoin(qf.ChildView)
.On(ChildViewFields.Id == ParentViewFields.ParentId))
.Where((ParentViewFields.Region == _region)
.And(ParentViewFields.Id.In(_checkIds)))
.Select(() => ParentViewFields.Id.ToValue<string>())
.GroupBy(ParentViewFields.Id)
.Having( ??? )
非常感谢任何帮助。我愿意接受有关如何完成SQL所做的其他建议(需要注意的是,它必须在数据库中运行,而不是在客户端进行进一步的计算)。
答案 0 :(得分:1)
类似的东西:
Functions.IIF(ChildViewFields.Name.In("Required1", "Required2", "Required3"), 1, 0).Sum().NotEqual(3)
(所以把它放在有电话中)
请在下一次发布在我们的支持论坛上,以便我们可以立即提出问题,因为我们不会定期监控stackoverflow。