首页 > 解决方案 > 获取没有 ROWCOUNT 的查询结果集返回的行数

问题描述

我有下面的查询,它将为我提供 EmployeeId 和他登录应用程序的次数

SELECT E.[EmployeeId], COUNT(*) LoginCount
FROM tblEmployee E
JOIN tblAccessLog AL ON E.EmployeeId = AL.EmployeeId
WHERE AL.[AccessType] = 212
GROUP BY E.[EmployeeId]

我想得到那些登录超过特定阈值的员工,让我取 100。

SELECT E.[EmployeeId], COUNT(*) LoginCount
FROM tblEmployee E
JOIN tblAccessLog AL ON E.EmployeeId = AL.EmployeeId
WHERE AL.[AccessType] = 212
GROUP BY E.[EmployeeId]
HAVING COUNT(*) > 100

现在我想得到上述查询返回的计数,我的意思是访问我的网站超过 100 次的员工的计数。

我试过@@ROWCOUNT了,它返回了用户数,但返回了 2 个结果集,我正在寻找是否有更好的方法而不是使用@@ROWCOUNT.

标签: sqlsql-servertsqljoincount

解决方案


Just use your current query as a sub-query.

SELECT COUNT(*)
FROM (
    SELECT E.[EmployeeId], COUNT(*) LoginCount
    FROM tblEmployee E
    JOIN tblAccessLog AL ON E.EmployeeId = AL.EmployeeId
    WHERE AL.[AccessType] = 212
    GROUP BY E.[EmployeeId]
    HAVING COUNT(*) > 100
) X

推荐阅读