我对SQL Server感到非常沮丧.我只是想加入3个表,非常简单,并且很容易在mysql中完成.但在SQL Server中,它一直告诉我要包含tbl_department.deptname在一个聚合函数中.但是我可以在一个简单的字符串中使用哪些聚合函数?
SELECT
COUNT(tblStudent_Department.student_id) AS Expr2,
tbl_department.deptname AS Expr1
FROM
tblStudent_Department
LEFT OUTER JOIN
tbl_department ON tblStudent_Department.deptcode = tbl_department.deptcode
LEFT OUTER JOIN
tblStudent ON tblStudent_Department.student_id = tblStudent.studentid
GROUP BY
tblStudent_Department.deptcode
Run Code Online (Sandbox Code Playgroud)
请帮忙.
数据库不知道如果你分组deptcode,你就是隐式分组deptname.您必须通过将列添加到以下内容来告诉SQL Server group by:
GROUP BY tblStudent_Department.deptcode, tbl_department.deptname
Run Code Online (Sandbox Code Playgroud)
MySQL的特殊之处在于,如果不指定聚合,它基本上会选择一个随机行.这可能会产生误导并导致错误的结果.与许多其他事情一样,MySQL具有更实用的解决方案,而SQL Server则更为正确.