我通常只是垃圾与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;
不确定我是否以正确的方式前进。这真的令人沮丧。
答案 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