我想做以下事情。
SELECT aspnet_Users.UserName, aspnet_Membership.Email, count(*) as Activities
FROM aspnet_Users
INNER JOIN Activities ON aspnet_Users.UserId = Activities.ActUserID
INNER JOIN aspnet_Membership ON aspnet_Users.UserId = aspnet_Membership.UserId
WHERE Activities.ActDateTime >= GETDATE()
GROUP BY aspnet_Users.UserName
ORDER BY Activities DESC
但这给了我一个错误。
列'aspnet_Membership.Email'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。
我有点理解错误。我正在尝试选择不属于分组的列。
但是,aspnet_Membership.Email和aspnet_Users.UserId之间始终存在一对一的关系。那么我该如何实现呢?
答案 0 :(得分:3)
变化:
GROUP BY aspnet_Users.UserId
要:
GROUP BY aspnet_Users.UserName, aspnet_Membership.Email
如果您不想退回,或者您认为不应该按 想要的列分组,为什么您认为您需要在分组中提及UserId列?回来。
答案 1 :(得分:0)
要选择一个列,它必须是group by子句或聚合,你可以考虑分组(aspnet_Users.UserName,aspnet_Membership.Email,aspnet_Users.UserId)。
我的猜测是可行的