我的查询是在 SQL 中
Session.CreateQuery("SELECT MAX(T.Maximum) FROM (SELECT COUNT(ID) as 'Maximum' FROM Privilege WHERE IsActive = 1 GROUP BY PrivilegeModuleID ) AS T");
但我不知道 HQL (nhibernate) 中的语法
如果有人知道,请告诉我?
我的查询是在 SQL 中
Session.CreateQuery("SELECT MAX(T.Maximum) FROM (SELECT COUNT(ID) as 'Maximum' FROM Privilege WHERE IsActive = 1 GROUP BY PrivilegeModuleID ) AS T");
但我不知道 HQL (nhibernate) 中的语法
如果有人知道,请告诉我?
据我所知,您无法从 HQL 中的子选择(隐式视图)中进行选择。但在你的情况下,这个子选择并不是真正需要的,所以解决方案应该很简单:
select max(count(p.ID)) from Privilege p where p.IsActive = 1 group by p.PrivilegeModule.id
SELECT COUNT(P.PRIVILEGE_ID) FROM PRIVILEGE P WHERE IS_ACTIVE = 1 GROUP by P.PRIVILEGE_MODULE_ID ORDER BY COUNT(P.PRIVILEGE_ID) DESC