我很难将一个有点简单的查询转换为一个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所做的工作,我愿意听取其他建议(请注意,SQL必须在数据库中运行,而不是为了进一步的计算而使客户端崩溃)。
发布于 2013-11-27 14:08:28
类似于:
Functions.IIF(ChildViewFields.Name.In("Required1", "Required2", "Required3"), 1, 0).Sum().NotEqual(3)(所以把它放在有电话里)
请下次在我们的支持论坛上张贴,这样我们就可以立即回答问题,因为我们不定期监测堆叠溢出。
https://stackoverflow.com/questions/20132529
复制相似问题