1

这是我尝试过的,但无法正常工作

SELECT d.deptno,d.dname
COUNT('e.empno') "number of employees"
FROM dept,emp
WHERE d.deptno = e.deptno
GROUP BY d.deptno,d.dname

非常感谢任何帮助谢谢

4

4 回答 4

1

在 sql-server 中它会像

SELECT d.deptno,d.dname,
COUNT(e.empno) as number_of_employees
FROM dept d,emp e
WHERE d.deptno = e.deptno
GROUP BY d.deptno,d.dname


the error occurs when you undefined the instance of the table used

以防万一更优化

SELECT d.deptno,d.dname, COUNT(e.empno) as number_of_employees FROM dept d join emp e on d.deptno = e.deptno GROUP BY d.deptno,d.dname

于 2013-10-20T15:39:15.960 回答
0

好的,您有一些语法错误:

  1. COUNT(Something) 是要选择的,所以它应该在“d.dname”之后用逗号分隔。此外,就像 Guillaume 指出的那样,它是一列而不是字符串,因此不需要引号:
    SELECT d.deptno, d.dname, COUNT(e.empno)
  2. 您使用“d”和“e”之类的别名,但您没有定义它们。你会这样做:
    “来自部门 d”
  3. 联接应写成如下:
    “INNER JOIN employees e ON e.deptno = d.deptno
    (这在技术上不是语法错误,但我建议明确使用内部联接)
  4. 注释应以'--'为前缀

PS在这里假设T-SQL / MS SQL Server。

于 2013-10-20T15:19:35.673 回答
0

在我看来,您可能正在使用 Oracle,在这种情况下,修复相当简单:

SELECT d.deptno, d.dname, count(e.empno) "number of employees"
FROM dept d, emp e
WHERE d.deptno = e.deptno
GROUP BY d.deptno, d.dname

您需要明确告诉数据库别名所指的内容。错误消息可能提到了无效/缺失的标识符“d”,这意味着它不知道那是什么。

于 2013-10-20T15:23:43.663 回答
0

尝试

SELECT d.department_id, 
       d.department_name, 
       COUNT(e.employee_id) as number_of_employees
FROM departments d 
JOIN employees e 
    on d.department_id = e.department_id 
GROUP BY d.department_id, d.department_name;
于 2018-05-18T22:46:19.340 回答