Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 显示每个部门的编号和名称以及每个部门雇用的员工人数_Sql - Fatal编程技术网

Sql 显示每个部门的编号和名称以及每个部门雇用的员工人数

Sql 显示每个部门的编号和名称以及每个部门雇用的员工人数,sql,Sql,这是我尝试过的,但无法让它工作 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 非常感谢您的帮助,谢谢好的,您有一些语法错误: COUNTSomething是要选择的对象,因此应该在d.dname之后用逗号分隔。此外,正如纪尧姆指出的,它是一个列而不是一个字符串,因此不需要引号: 选择d

这是我尝试过的,但无法让它工作

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

非常感谢您的帮助,谢谢

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

COUNTSomething是要选择的对象,因此应该在d.dname之后用逗号分隔。此外,正如纪尧姆指出的,它是一个列而不是一个字符串,因此不需要引号: 选择d.deptno、d.dname、COUNTe.empno 您使用了像d和e这样的别名,但没有定义它们。您可以这样做: 来自d部门 连接应按如下方式编写: e.deptno=d.deptno上的内部连接e 从技术上讲,这不是语法错误,但我建议显式使用内部连接 注释的前缀应为“-”
这里假设T-SQL/MS SQL Server

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

COUNTSomething是要选择的对象,因此应该在d.dname之后用逗号分隔。此外,正如纪尧姆指出的,它是一个列而不是一个字符串,因此不需要引号: 选择d.deptno、d.dname、COUNTe.empno 您使用了像d和e这样的别名,但没有定义它们。您可以这样做: 来自d部门 连接应按如下方式编写: e.deptno=d.deptno上的内部连接e 从技术上讲,这不是语法错误,但我建议显式使用内部连接 注释的前缀应为“-”
这里假设T-SQL/MS SQL Server

在我看来,您可能正在使用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

您需要明确地告诉DB别名指的是什么。错误消息可能提到一个无效/丢失的标识符“d”,这意味着它不知道该标识符是什么。

在我看来,您可能正在使用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

您需要明确地告诉DB别名指的是什么。错误消息可能提到了无效/缺少的标识符“d”,这意味着它不知道该标识符是什么。

在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
以防万一,会有更多的优化

选择d.deptno,d.dname, 将empno计算为员工人数 从d部门加入emp e 关于d.deptno=e.deptno d.deptno,d.dname分组


在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
以防万一,会有更多的优化

选择d.deptno,d.dname, 将empno计算为员工人数 从d部门加入emp e 关于d.deptno=e.deptno d.deptno,d.dname分组

试一试

试一试


这在count之前缺少逗号您可能不需要在列名周围加引号。您使用的是哪种SQL变体?当你试着运行上面的程序时发生了什么?如果你收到一条错误信息,就把它贴出来。如果得到意外结果,请描述它。缺少a或AS。缺少count之前的逗号。您可能不需要在列名周围加引号。您使用的是哪种SQL变体?当你试着运行上面的程序时发生了什么?如果你收到一条错误信息,就把它贴出来。如果您得到了意外的结果,请描述它。您缺少a或AS。您的第三点不是语法错误。可以进行交叉连接,然后过滤WHERE子句。同意,让我编辑。但是您认为查询优化器会自动将其作为内部联接吗?可能是这样,但我总是显式地编写连接。更具可读性,尤其是当您有多个联接时。对吧?你的第三点不是语法错误。可以进行交叉连接,然后过滤WHERE子句。同意,让我编辑。但是您认为查询优化器会自动将其作为内部联接吗?可能是这样,但我总是显式地编写连接。更具可读性,尤其是当您有多个联接时。对吗?这句话不是笛卡尔乘积,而不是内部联接吗?我不这么认为,我认为它在Oracle中的实现有点不同,因为他们没有很好地使用标准。好吧,这比使用“内部联接”性能更好,因为这是事后才实现的。从语句中得到的不是笛卡尔积,而是内部联接吗?我不这么认为,我认为它在Oracle中的实现有点不同,因为他们没有很好地使用标准。恐怕这比使用“内部联接”性能更好,因为这是事后才实现的。如果有人使用Microsoft Dynamics CRM,我在此基础上创建了一个变体来显示此查询中每个帐户的联系人数:从accountbase a中选择a.AccountId、a.Name、COUNTc.ParentCustomerId作为联系人数,contactbase c其中a.accountid=c.ParentCustomerId组BY a.accountid,a.Name如果有人使用Microsoft Dynamics CRM,我在此基础上创建了一个变体,以显示此查询中每个帐户的联系人数:选择a.accountid,a.Name,COUNTc.ParentCustomerId作为accountbase a中的联系人数,contactbase c,其中a.accountid=c.ParentCustomerId组由a.accountid、a.Name组成