略複雜業務 熟能生巧 信手拈來spa
使用hr 表仍是上篇那些表 再也不復述code
任務:htm
個人解答:blog
1 --1.哪些部門的人數比90 號部門的人數多
2 -- 先算90號部門人數
3 SELECT COUNT(1) FROM EMPLOYEES e WHERE e.DEPARTMENT_ID=90; 4 -- 再算每一個部門的人數
5 SELECT COUNT(1),ee.DEPARTMENT_ID FROM EMPLOYEES ee GROUP BY ee.DEPARTMENT_ID; 6 --大於
7 SELECT COUNT(1),ee.DEPARTMENT_ID FROM EMPLOYEES ee GROUP BY ee.DEPARTMENT_ID HAVING COUNT(1)>(SELECT COUNT(1) FROM EMPLOYEES e WHERE e.DEPARTMENT_ID=90) ORDER BY ee.DEPARTMENT_ID;
1 --2.Den(FIRST_NAME)、Raphaely(LAST_NAME)的領導是誰(非關聯子查詢)。
2 -- 查詢出Den(FIRST_NAME)、Raphaely(LAST_NAME)的領導
3 SELECT e.MANAGER_ID FROM EMPLOYEES e WHERE e.FIRST_NAME='Den' AND e.LAST_NAME='Raphaely'; 4 -- 關聯employee_id和manager_id
5 -- 人
6 SELECT * FROM EMPLOYEES ee WHERE ee.EMPLOYEE_ID=(SELECT e.MANAGER_ID FROM EMPLOYEES e WHERE e.FIRST_NAME='Den' AND e.LAST_NAME='Raphaely');
1 --3.Den(FIRST_NAME)、Raphaely(LAST_NAME) 領導誰(非關聯子查詢)
2 -- 查出這我的的employee_id
3 SELECT e.EMPLOYEE_ID FROM EMPLOYEES e WHERE e.FIRST_NAME='Den' AND e.LAST_NAME='Raphaely'; 4 -- 領導是這個employee_id
5 SELECT ee.FIRST_NAME||' '||ee.LAST_NAME FROM EMPLOYEES ee WHERE ee.MANAGER_ID=(SELECT e.EMPLOYEE_ID FROM EMPLOYEES e WHERE e.FIRST_NAME='Den' AND e.LAST_NAME='Raphaely');
--4.Den(FIRST_NAME)、Raphaely(LAST_NAME) 的領導是誰(關聯子查詢) -- 不知道關聯子查詢 還須要查閱資料
SELECT e.FIRST_NAME||' '||e.LAST_NAME FROM EMPLOYEES e WHERE EXISTS (SELECT 1 FROM EMPLOYEES ee WHERE ee.FIRST_NAME='Den' AND ee.LAST_NAME='Raphaely' AND ee.MANAGER_ID=e.EMPLOYEE_ID);
--5.Den(FIRST_NAME)、Raphaely(LAST_NAME) 領導誰(關聯子查詢)
SELECT e.FIRST_NAME||' '||e.LAST_NAME FROM EMPLOYEES e WHERE EXISTS (SELECT 1 FROM EMPLOYEES ee WHERE ee.FIRST_NAME='Den' AND ee.LAST_NAME='Raphaely' AND ee.EMPLOYEE_ID=e.MANAGER_ID);
--6.列出在同一部門共事,入職日期晚但工資高於其餘同事的員工:名字、工資、入職日期(關聯子查詢)。
SELECT e.FIRST_NAME||' '||e.LAST_NAME 姓名,e.SALARY 工資,e.HIRE_DATE 入職日期 FROM EMPLOYEES e WHERE EXISTS( SELECT 1 FROM EMPLOYEES ee WHERE e.HIRE_DATE>ee.HIRE_DATE AND e.SALARY>ee.SALARY AND e.DEPARTMENT_ID=ee.DEPARTMENT_ID ); -- 沒有思路 不明白
姓名 工資 入職日期
---------------------------------------------- ---------- ---------
Girard Geoni 2800 03-2月 -08
Kevin Mourgos 5800 16-11月-07
Steven King 24000 17-6月 -03
Bruce Ernst 6000 21-5月 -07
Alexander Hunold 9000 03-1月 -06
Nancy Greenberg 12008 17-8月 -02
Jose Manuel Urman 7800 07-3月 -06
Shelli Baida 2900 24-12月-05
Adam Fripp 8200 10-4月 -05
Matthew Weiss 8000 18-7月 -04
Jennifer Dilly 3600 13-8月 -05
Julia Dellinger 3400 24-6月 -06
Laura Bissot 3300 20-8月 -05
Shanta Vollman 6500 10-10月-05
Vance Jones 2800 17-3月 -07
Anthony Cabrio 3000 07-2月 -07
Randall Perkins 2500 19-12月-07
Martha Sullivan 2500 21-6月 -07
Douglas Grant 2600 13-1月 -08
Donald OConnell 2600 21-6月 -07
Kevin Feeney 3000 23-5月 -06
Alana Walsh 3100 24-4月 -06
Samuel McCain 3200 01-7月 -06
Timothy Gates 2900 11-7月 -06
Jean Fleaur 3100 23-2月 -06
Winston Taylor 3200 24-1月 -06
Michael Rogers 2900 26-8月 -06
Britney Everett 3900 03-3月 -05
Kelly Chung 3800 14-6月 -05
Alexis Bull 4100 20-2月 -05
Randall Matos 2600 15-3月 -06
John Seo 2700 12-2月 -06
Stephen Stiles 3200 26-10月-05
Mozhe Atkinson 2800 30-10月-05
Irene Mikkilineni 2700 28-9月 -06
Julia Nayer 3200 16-7月 -05
Hazel Philtanker 2200 06-2月 -08
Ki Gee 2400 12-12月-07
Steven Markle 2200 08-3月 -08
Sarah Bell 4000 04-2月 -04
Nandita Sarchand 4200 27-1月 -04
Lisa Ozer 11500 11-3月 -05
Clara Vishney 10500 11-11月-05
Eleni Zlotkey 10500 29-1月 -08
Gerald Cambrault 11000 15-10月-07
Alberto Errazuriz 12000 10-3月 -05
Tayler Fox 9600 24-1月 -06
Harrison Bloom 10000 23-3月 -06
Danielle Greene 9500 19-3月 -07
Jack Livingston 8400 23-4月 -06
Mattea Marvins 7200 24-1月 -08
Ellen Abel 11000 11-5月 -04
Karen Partners 13500 05-1月 -05
John Russell 14000 01-10月-04
Peter Tucker 10000 30-1月 -05
David Bernstein 9500 24-3月 -05
Jonathon Taylor 8600 24-3月 -06
Alyssa Hutton 8800 19-3月 -05
Peter Hall 9000 20-8月 -05
Christopher Olsen 8000 30-3月 -06
Elizabeth Bates 7300 24-3月 -07
William Smith 7400 23-2月 -07
Nanette Cambrault 7500 09-12月-06
Sundar Ande 6400 24-3月 -08
David Lee 6800 23-2月 -08
選定了 65 行
--7.哪些員工跟Den(FIRST_NAME)、Raphaely(LAST_NAME)不在同一個部門(非關聯子查詢)
SELECT e.FIRST_NAME||' '||e.LAST_NAME FROM EMPLOYEES e WHERE e.DEPARTMENT_ID NOT in (SELECT ee.DEPARTMENT_ID FROM EMPLOYEES ee WHERE ee.FIRST_NAME='Den' AND ee.LAST_NAME='Raphaely');
...ip
--8.哪些員工跟Den(FIRST_NAME)、Raphaely(LAST_NAME)不在同一個部門(關聯子查詢)
SELECT e.FIRST_NAME||' '||e.LAST_NAME 姓名 FROM EMPLOYEES e WHERE NOT EXISTS (SELECT 1 FROM EMPLOYEES ee WHERE e.DEPARTMENT_ID=ee.DEPARTMENT_ID AND ee.FIRST_NAME='Den' AND ee.LAST_NAME='Raphaely');
...it
--9.Finance部門有哪些職位(非關聯子查詢)
SELECT DISTINCT(e.JOB_ID) FROM EMPLOYEES e WHERE e.DEPARTMENT_ID IN (SELECT d.DEPARTMENT_ID FROM DEPARTMENTS d WHERE d.DEPARTMENT_NAME='Finance');
--10.Finance部門有哪些職位(關聯子查詢)。 -- 注意部門id相等條件 以前沒有加 結果就不對
SELECT DISTINCT(e.JOB_ID) FROM EMPLOYEES e WHERE EXISTS (SELECT 1 FROM DEPARTMENTS d WHERE d.DEPARTMENT_NAME='Finance' AND e.DEPARTMENT_ID=d.DEPARTMENT_ID);
原做者:http://database.51cto.com/art/201106/271577.htm#topxio