我有这个查询工作得很好:
SELECT [Exam Category]
,[Student No_]
,Gender
,Description
,Stage
FROM [MYDB $Course Registration]
inner join [MYDB $Student]
ON [Student No_] = No_
inner join [MYDB $Programme]
ON Code = Programme
where Gender != 0
order by [Exam Category] desc
,[Student No_]
,Stage
但是,我想按[Exam Category]
分组:
SELECT [Exam Category]
,[Student No_]
,Gender
,Description
,Stage
FROM [MYDB $Course Registration]
inner join [MYDB $Customer]
ON [Student No_] = No_
inner join [MYDB $Programme]
ON Code = Programme
where Gender != 0
group by [Exam Category]
order by Stage
,[Student No_]
但它会带来错误
Msg 8120,Level 16,State 1,Line 9 专栏#MYDB $课程注册。学生没有_'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。
任何帮助?
答案 0 :(得分:1)
注意 - 如果你通过选项给出group,那么*不能在select语句中 你必须在select语句中提到列名 select列应具有max,count,sum等聚合函数, 那些没有聚合函数名称的列应该在group by子句
之后指定那些列名//在你的情况下,性别,描述,阶段不包括在分组中,
![SELECT [Exam Category]
,[Student No_]
,Gender
,Description
,Stage FROM [MYDB $Course Registration]
inner join [MYDB $Customer]
ON [Student No_] = No_
inner join [MYDB $Programme]
ON Code = Programme where Gender != 0 group by [Exam Category]
我的代码参考检查
select MAX(Employee_Details.NewEmployeeId)
,Employee_Details.First_Name
from Employee_Details
INNER JOIN EmployeeDesignation_List ON Employee_Details.Designation=EmployeeDesignation_List.Designation_id
WHERE Employee_Details.Status='Active'
GROUP BY Employee_Details.First_Name
ORDER BY Employee_Details.First_Name
答案 1 :(得分:0)
如果你想按Exam Category
聚合,那么我希望这样的查询:
SELECT [Exam Category], COUNT(*)
FROM [MYDB $Course Registration] inner join
[MYDB $Customer]
ON [Student No_] = No_ inner join
[MYDB $Programme]
ON Code = Programme
where Gender <> 0
Group by [Exam Category];
请注意,所有其他列都已从SELECT
中删除。
如果这不是您想要的,那么您应该编辑您的问题并提供样本数据和所需的结果。