我已经运行此查询以在两个表之间加入,这没关系
SELECT
TaskName AS TaskStatusTitle,
COUNT(TblTask.UserID),
CreateDate,
UserID,
TblProfiles.FullName AS [User Full Name]
FROM Task.TblTask
RIGHT JOIN Users.TblProfiles
ON Task.TblTask.UserID=Users.TblProfiles.UserrId
GROUP BY UserID`
然后我添加计数到这个查询,但我给了这个错误! 我该怎么办?
列' Task.TblTask.TaskName'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。
答案 0 :(得分:1)
使用聚合函数时,需要将所有列添加到group by子句中。喜欢这个
SELECT
TaskName AS TaskStatusTitle,
COUNT(TblTask.UserID),
CreateDate,
UserID,
TblProfiles.FullName AS [User Full Name]
FROM Task.TblTask
RIGHT JOIN Users.TblProfiles
ON Task.TblTask.UserID=Users.TblProfiles.UserrId
GROUP BY
UserID,TaskName ,CreateDate, TblProfiles.FullName
答案 1 :(得分:0)
您将需要您在group by子句中选择的每一列。
SELECT
TaskName AS TaskStatusTitle,
COUNT(TblTask.UserID),
CreateDate,
UserID,
TblProfiles.FullName AS [User Full Name]
FROM Task.TblTask
RIGHT JOIN Users.TblProfiles
ON Task.TblTask.UserID=Users.TblProfiles.UserrId
GROUP BY UserID,TaskName,CreateDate,TblProfiles.FullName
答案 2 :(得分:0)
使用group by子句处理聚合函数时,请确保已将所有列也包含在group by子句中。
试试这个:
SELECT
TaskName AS TaskStatusTitle,
COUNT(TblTask.UserID),
CreateDate,
TblTask.UserID,
TblProfiles.FullName AS [User Full Name]
FROM Task.TblTask
RIGHT JOIN Users.TblProfiles
ON Task.TblTask.UserID=Users.TblProfiles.UserrId
GROUP BY TaskName,CreateDate,TblTask.UserID,TblProfiles.FullName;
答案 3 :(得分:0)
SELECT DISTINCT
TaskName AS TaskStatusTitle,
COUNT(TblTask.UserID)OVER(PARTITION BY UserID) AS CNT ,
CreateDate,
UserID,
TblProfiles.FullName AS [User Full Name]
FROM Task.TblTask
RIGHT JOIN Users.TblProfiles
ON Task.TblTask.UserID=Users.TblProfiles.UserrId