我有一个查询,我正在运行以返回我的工具的一些统计信息。目前它正在返回所有信息,但我最近添加了一个新列,以便能够按位置获取总数,这就是我被困住的地方。
以下是我的询问:
SELECT B.[segmentName],
count(A.[segmentID]) AS total,
A.[meetingID],
C.[center]
FROM Focus_Meetings_Segments AS A
INNER JOIN
Focus_Segments AS B
ON A.[segmentID] = B.[id]
JOIN Focus_Meetings as C
ON C.[id] = A.[meetingID]
WHERE C.[center] = @location
GROUP BY A.[segmentID], B.[segmentName]
ORDER BY total DESC
FOR XML PATH ('segment'), TYPE, ELEMENTS, ROOT ('root');
新添加的列为center
到Focus_Meetings表。
我得到的错误是meetingID不包含在聚合或group by子句中。
是否有另一种方法来编写此查询,以便我可以运行它?
答案 0 :(得分:1)
更改GROUP BY A.[segmentID], B.[segmentName]
到GROUP BY B.[segmentName], A.[meetingID], C.[center]
答案 1 :(得分:0)
在查询中使用GROUP BY
时,应该聚合选择列表中的所有字段,或者按列表列出。
您必须聚合A.[meetingID], C.[center]
(使用聚合函数,如SUM,COUNT,MIN,AVG等),或者您必须在GROUP BY子句中列出它们。
答案 2 :(得分:0)
使用聚合函数(如SUM
或AVG
)时,聚合函数未使用的所有列必须位于GROUP BY
列列表中