无法创建列出所有"位置的视图,"以及"部门的数量"和#34;员工人数"在那些部门

时间:2014-11-18 13:02:16

标签: sql group-by inner-join

我通常只是垃圾与SQL(知道如何完成最基本的任务 - 仍在学习),并需要有经验的人的指导,他们可能能够解释我的问题的正确解决方案背后的过程

正如标题所暗示的那样,我的任务是创建一个列出所有地点的视图,以及每个地点的部门数量,最后是每个地点雇用的人数。

对于可能出现的任何格式错误,我们深表歉意。我在这里很新。

以下2个表(Dept和Emp)应提供所需的所有信息:

Emp

 EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM    DEPTNO
 ----- ---------- --------- ---------- --------- ---------- --------------------
  7369 SMITH      CLERK           7902 17-DEC-80        800                   20
  7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300        30
  7521 WARD       SALESMAN        7698 22-FEB-81       1250        500        30
  7566 JONES      MANAGER         7839 02-APR-81       2975                   20
  7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400        30
  7698 BLAKE      MANAGER         7839 01-MAY-81       2850                   30
  7782 CLARK      MANAGER         7839 09-JUN-81       2450                   10
  7788 SCOTT      ANALYST         7566 19-APR-87       3000                   20
  7839 KING       PRESIDENT            17-NOV-81       5000                   10
  7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0        30
  7876 ADAMS      CLERK           7788 23-MAY-87       1100                   20
  7900 JAMES      CLERK           7698 03-DEC-81        950                   30
  7902 FORD       ANALYST         7566 03-DEC-81       3000                   20
  7934 MILLER     CLERK           7782 23-JAN-82       1300                   10

部门

DEPTNO DNAME          LOC
------ -------------- -------------
    10 ACCOUNTING     NEW YORK
    20 RESEARCH       DALLAS
    30 SALES          CHICAGO
    40 OPERATIONS     BOSTON

我知道自己需要做什么,但我对如何到达那里并不是很了解。

提前感谢任何可以帮助我的人。赞赏。

嗯,到目前为止我已经被告知了这件事:

SELECT Dept.Loc "Location", Emp.Ename "Emp count", Emp.deptno "Dept count"
COUNT(DISTINCT Emp.Ename) AND (DISTINCT Emp.Deptno)
FROM Emp;

不确定我是否以正确的方式前进。这真的令人沮丧。

1 个答案:

答案 0 :(得分:0)

首先,弄清楚如何将两个表连接成一个大表,因此新表包含两个表中的所有列。

CLUE:查找JOIN并使用DEPTNO字段

select * 
from Emp
join Dept on emp.deptNo=Dept.deptNo

现在,GROUP BY此结果按位置,部门名称

select Loc,dName,count(*)
from Emp
    join Dept on emp.deptNo=Dept.deptNo
group by loc,dName

这应该让你开始。

您实际上非常接近,通过上面的JOIN和GROUP BY示例调整您的查询

要创建视图,请执行

CREATE VIEW  myViewName AS
 SELECT statement