将带有“HAVING”子句的SQL转换为LLBLGen Pro DynamicQuery

时间:2013-11-21 21:41:27

标签: c# llblgenpro

我无法将一个简单的查询转换为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所做的其他建议(需要注意的是,它必须在数据库中运行,而不是在客户端进行进一步的计算)。

1 个答案:

答案 0 :(得分:1)

类似的东西:

Functions.IIF(ChildViewFields.Name.In("Required1", "Required2", "Required3"), 1, 0).Sum().NotEqual(3)

(所以把它放在有电话中)

请在下一次发布在我们的支持论坛上,以便我们可以立即提出问题,因为我们不会定期监控stackoverflow。