# SQL 30題作業&解答 ###### tags: `SQL` ```clike= 1. 顯示每一位員工的職務是XXXX並給予一個名稱Jobs SELECT CAST(EMPNO AS NVARCHAR)+' '+ENAME EMP, ' IS '+JOB JOB FROM EMP; EMP JOB ----------------------------------------- ------------- 7369 SMITH IS CLERK 7499 ALLEN IS SALESMAN 7521 WARD IS SALESMAN 7566 JONES IS MANAGER 7654 MARTIN IS SALESMAN 7698 BLAKE IS MANAGER 7782 CLARK IS MANAGER 7788 SCOTT IS ANALYST 7839 KING IS PRESIDENT 7844 TURNER IS SALESMAN 7876 ADAMS IS CLERK 7900 JAMES IS CLERK 7902 FORD IS ANALYST 7934 MILLER IS CLERK 2. 列出各部門中現有的職務分類 SELECT DISTINCT DEPTNO, JOB FROM EMP ORDER BY DEPTNO; DEPTNO JOB ----------- --------- 10 CLERK 10 MANAGER 10 PRESIDENT 20 ANALYST 20 CLERK 20 MANAGER 30 CLERK 30 MANAGER 30 SALESMAN 3. 列出下表 SELECT EMPNO 編號, ENAME 姓名, JOB 職務, SAL 薪資 FROM EMP; 編號 姓名 職務 薪資 ----------- ---------- --------- --------------------------------------- 7369 SMITH CLERK 800.00 7499 ALLEN SALESMAN 1600.00 7521 WARD SALESMAN 1250.00 7566 JONES MANAGER 2975.00 7654 MARTIN SALESMAN 1250.00 7698 BLAKE MANAGER 2850.00 7782 CLARK MANAGER 2450.00 7788 SCOTT ANALYST 3000.00 7839 KING PRESIDENT 5000.00 7844 TURNER SALESMAN 1500.00 7876 ADAMS CLERK 1100.00 7900 JAMES CLERK 950.00 7902 FORD ANALYST 3000.00 7934 MILLER CLERK 1300.00 4. 列出姓名中含有M與A字母的員工 SELECT * FROM EMP WHERE ENAME LIKE '%M%' AND ENAME LIKE '%A%' EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----------- ---------- --------- ----------- ----------------------- --------------------------------------- --------------------------------------- ----------- 7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00.000 1250.00 1400.00 30 7876 ADAMS CLERK 7788 1987-05-23 00:00:00.000 1100.00 NULL 20 7900 JAMES CLERK 7698 1981-12-03 00:00:00.000 950.00 NULL 30 5. 列出職務為SALESMAN且COMM=0的員工 SELECT * FROM EMP WHERE JOB = 'SALESMAN' AND COMM = 0; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----------- ---------- --------- ----------- ----------------------- --------------------------------------- --------------------------------------- ----------- 7844 TURNER SALESMAN 7698 1981-09-08 00:00:00.000 1500.00 0.00 30 6. 列出1981年到職的員工 SELECT * FROM EMP WHERE DATEPART(YEAR,HIREDATE) = 1981 ORDER BY EMPNO; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----------- ---------- --------- ----------- ----------------------- --------------------------------------- --------------------------------------- ----------- 7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00.000 1600.00 300.00 30 7521 WARD SALESMAN 7698 1981-02-22 00:00:00.000 1250.00 500.00 30 7566 JONES MANAGER 7839 1981-04-02 00:00:00.000 2975.00 NULL 20 7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00.000 1250.00 1400.00 30 7698 BLAKE MANAGER 7839 1981-05-01 00:00:00.000 2850.00 NULL 30 7782 CLARK MANAGER 7839 1981-06-09 00:00:00.000 2450.00 NULL 10 7839 KING PRESIDENT NULL 1981-11-17 00:00:00.000 5000.00 NULL 10 7844 TURNER SALESMAN 7698 1981-09-08 00:00:00.000 1500.00 0.00 30 7900 JAMES CLERK 7698 1981-12-03 00:00:00.000 950.00 NULL 30 7902 FORD ANALYST 7566 1981-12-03 00:00:00.000 3000.00 NULL 20 7. 依各職務類別及薪資降冪排序 SELECT EMPNO, ENAME, JOB, SAL FROM EMP ORDER BY JOB, SAL DESC; EMPNO ENAME JOB SAL ----------- ---------- --------- ----------- 7788 SCOTT ANALYST 3000.00 7902 FORD ANALYST 3000.00 7934 MILLER CLERK 1300.00 7876 ADAMS CLERK 1100.00 7900 JAMES CLERK 950.00 7369 SMITH CLERK 800.00 7566 JONES MANAGER 2975.00 7698 BLAKE MANAGER 2850.00 7782 CLARK MANAGER 2450.00 7839 KING PRESIDENT 5000.00 7499 ALLEN SALESMAN 1600.00 7844 TURNER SALESMAN 1500.00 7521 WARD SALESMAN 1250.00 7654 MARTIN SALESMAN 1250.00 8. 顯示員工的資訊並依下列職務的順序排列 PRESIDENT MANAGER ANALYST CLERK SALESMAN SELECT EMPNO, ENAME, JOB FROM EMP ORDER BY CASE JOB WHEN 'PRESIDENT' THEN 1 WHEN 'MANAGER' THEN 2 WHEN 'ANALYST' THEN 3 WHEN 'CLERK' THEN 4 WHEN 'SALESMAN' THEN 5 ELSE 6 END; EMPNO ENAME JOB ----------- ---------- --------- 7839 KING PRESIDENT 7698 BLAKE MANAGER 7782 CLARK MANAGER 7566 JONES MANAGER 7788 SCOTT ANALYST 7902 FORD ANALYST 7934 MILLER CLERK 7876 ADAMS CLERK 7900 JAMES CLERK 7369 SMITH CLERK 7499 ALLEN SALESMAN 7521 WARD SALESMAN 7654 MARTIN SALESMAN 7844 TURNER SALESMAN 9. 依據職務計算出員工調整後的薪資 SALESMAN 調5% MANAGER 調7% PRESIDENT調10% 其餘的不變 SELECT EMPNO, ENAME, JOB, SAL, CASE JOB WHEN 'SALESMAN' THEN SAL*1.05 WHEN 'MANAGER' THEN SAL*1.07 WHEN 'PRESIDENT' THEN SAL*1.1 ELSE SAL END NEW_SAL FROM EMP ORDER BY JOB; EMPNO ENAME JOB SAL NEW_SAL ----------- ---------- --------- --------------------------------------- --------------------------------------- 7788 SCOTT ANALYST 3000.00 3000.0000 7902 FORD ANALYST 3000.00 3000.0000 7934 MILLER CLERK 1300.00 1300.0000 7876 ADAMS CLERK 1100.00 1100.0000 7900 JAMES CLERK 950.00 950.0000 7369 SMITH CLERK 800.00 800.0000 7566 JONES MANAGER 2975.00 3183.2500 7698 BLAKE MANAGER 2850.00 3049.5000 7782 CLARK MANAGER 2450.00 2621.5000 7839 KING PRESIDENT 5000.00 5500.0000 7844 TURNER SALESMAN 1500.00 1575.0000 7654 MARTIN SALESMAN 1250.00 1312.5000 7499 ALLEN SALESMAN 1600.00 1680.0000 7521 WARD SALESMAN 1250.00 1312.5000 10 .列出部門=10,各員工的年資 SELECT EMPNO, ENAME, DATEDIFF ( YEAR , HIREDATE , GETDATE() ) 年資 FROM EMP WHERE DEPTNO = 10; EMPNO ENAME 年資 ----------- ---------- ----------- 7782 CLARK 39 7839 KING 39 7934 MILLER 38 11.列出下面的結果 SELECT EMPNO, ENAME, RIGHT(REPLICATE('*',10)+'$'+CAST(CAST(SAL AS INT) AS NVARCHAR),10), DEPTNO FROM EMP WHERE DEPTNO = 10; EMPNO ENAME DEPTNO ----------- ---------- ---------- ----------- 7782 CLARK *****$2450 10 7839 KING *****$5000 10 7934 MILLER *****$1300 10 12.依到職日排列下面的結果 --SET LANGUAGE 繁體中文 SET LANGUAGE us_english; SELECT EMPNO, ENAME, HIREDATE, DATENAME(weekday, HIREDATE) DAYNAME FROM EMP ORDER BY CASE DATEPART(weekday, HIREDATE) WHEN 1 THEN 8 ELSE DATEPART(weekday, HIREDATE) END; Changed language setting to us_english. EMPNO ENAME HIREDATE DAYNAME ----------- ---------- ----------------------- ------------------------------ 7654 MARTIN 1981-09-28 00:00:00.000 Monday 7782 CLARK 1981-06-09 00:00:00.000 Tuesday 7839 KING 1981-11-17 00:00:00.000 Tuesday 7844 TURNER 1981-09-08 00:00:00.000 Tuesday 7369 SMITH 1980-12-17 00:00:00.000 Wednesday 7900 JAMES 1981-12-03 00:00:00.000 Thursday 7902 FORD 1981-12-03 00:00:00.000 Thursday 7566 JONES 1981-04-02 00:00:00.000 Thursday 7499 ALLEN 1981-02-20 00:00:00.000 Friday 7698 BLAKE 1981-05-01 00:00:00.000 Friday 7876 ADAMS 1987-05-23 00:00:00.000 Saturday 7934 MILLER 1982-01-23 00:00:00.000 Saturday 7788 SCOTT 1987-04-19 00:00:00.000 Sunday 7521 WARD 1981-02-22 00:00:00.000 Sunday 13.列出當月生日的員工 SELECT * FROM EMP WHERE DATEPART(MONTH,HIREDATE) = DATEPART(MONTH,GETDATE()) ORDER BY EMPNO; 14.計算各職務的人員人數及薪資總和 SELECT JOB, COUNT(*) CNT, SUM(SAL) COST FROM EMP GROUP BY JOB ORDER BY 1; JOB CNT COST --------- ----------- --------------------------------------- ANALYST 2 6000.00 CLERK 4 4150.00 MANAGER 3 8275.00 PRESIDENT 1 5000.00 SALESMAN 4 5600.00 15.計算各職務的平均薪資且>2000,依平均值排序列出 SELECT JOB, AVG(SAL) FROM EMP GROUP BY JOB HAVING AVG(SAL)>2000 ORDER BY 2; JOB --------- --------------------------------------- MANAGER 2758.333333 ANALYST 3000.000000 PRESIDENT 5000.000000 16.列出各年度僱用的人數,如下表 SELECT SUM(CASE WHEN DATEPART(YEAR,HIREDATE)=1980 THEN 1 ELSE 0 END) YY1980, SUM(CASE WHEN DATEPART(YEAR,HIREDATE)=1981 THEN 1 ELSE 0 END) YY1981, SUM(CASE WHEN DATEPART(YEAR,HIREDATE)=1982 THEN 1 ELSE 0 END) YY1982, SUM(CASE WHEN DATEPART(YEAR,HIREDATE)=1983 THEN 1 ELSE 0 END) YY1983 FROM EMP; YY1980 YY1981 YY1982 YY1983 ----------- ----------- ----------- ----------- 1 10 1 0 17.列出下表 SELECT JOB, SUM(CASE WHEN DEPTNO=10 THEN 1 ELSE 0 END) DEPT10, SUM(CASE WHEN DEPTNO=20 THEN 1 ELSE 0 END) DEPT20, SUM(CASE WHEN DEPTNO=30 THEN 1 ELSE 0 END) DEPT30 FROM EMP GROUP BY JOB; JOB DEPT10 DEPT20 DEPT30 --------- ----------- ----------- ----------- ANALYST 0 2 0 CLERK 1 2 1 MANAGER 1 1 1 PRESIDENT 1 0 0 SALESMAN 0 0 4 18.統計各級數的員工人數, 並依級數排序 人數 薪資 0 ~ 1200 A級 薪資 1201 ~ 2000 B級 薪資 2001 ~ 2800 C級 薪資 2801 ~ 3500 D級 其他 E級 SELECT A.TYPE, COUNT(*) CNT FROM (SELECT CASE WHEN SAL BETWEEN 0 AND 1200 THEN 'A' WHEN SAL BETWEEN 1201 AND 2000 THEN 'B' WHEN SAL BETWEEN 2001 AND 2800 THEN 'C' WHEN SAL BETWEEN 2801 AND 3500 THEN 'D' ELSE 'E' END TYPE FROM EMP) A GROUP BY A.TYPE; TYPE CNT ---- ----------- A 3 B 5 C 1 D 4 E 1 19.列出各MANAGER中配置的員工人數 SELECT MGR, COUNT(*) CNT FROM EMP GROUP BY MGR; MGR CNT ----------- ----------- NULL 1 7566 2 7698 5 7782 1 7788 1 7839 3 7902 1 20.列出各部門的人數 SELECT DEPTNO, COUNT(*) CNT FROM EMP GROUP BY DEPTNO; DEPTNO CNT ----------- ----------- 10 3 20 5 30 6 21.列出所有客戶的總交易金額 SELECT A.CUSTOMER_ID, A.CUST_FIRST_NAME, A.CUST_LAST_NAME, SUM(B.ORDER_TOTAL) TOTAL FROM CUSTOMERS A LEFT JOIN ORDERS B ON (A.CUSTOMER_ID = B.CUSTOMER_ID) GROUP BY A.CUSTOMER_ID, A.CUST_FIRST_NAME, A.CUST_LAST_NAME ORDER BY A.CUSTOMER_ID, A.CUST_FIRST_NAME, A.CUST_LAST_NAME; CUSTOMER_ID CUST_FIRST_NAME CUST_LAST_NAME TOTAL ----------- -------------------- -------------------- --------------------------------------- 101 Constantin Welles 190395.10 102 Harrison Pacino 69211.40 103 Manisha Taylor 20591.40 104 Harrison Sutherland 146605.50 105 Matthias MacGraw 61376.50 106 Matthias Hannah 36199.50 107 Matthias Cruise 155613.20 108 Meenakshi Mason 213399.70 109 Christian Cage 265255.60 110 Charlie Sutherland NULL 111 Charlie Pacino NULL ... 22.列出所有商品的銷售量 SELECT A.PRODUCT_ID, A.PRODUCT_NAME, SUM(B.QUANTITY) QTY FROM PRODUCT_INFORMATION A LEFT JOIN ORDER_ITEMS B ON (A.PRODUCT_ID = B.PRODUCT_ID) GROUP BY A.PRODUCT_ID, A.PRODUCT_NAME ORDER BY A.PRODUCT_ID, A.PRODUCT_NAME; ... 1778 C for SPNIX3.3 - 1 Seat NULL 1779 C for SPNIX3.3 - Doc NULL 1780 C for SPNIX3.3 - Sys NULL 1781 CDW 20/48/E 9 1782 Compact 400/DQ 4 1787 CPU D300 5 1788 CPU D600 NULL 1791 Industrial 700/HD 3 1792 Industrial 600/DQ NULL 1794 OSI 8-16/IL NULL 1797 Inkjet C/8/HQ 28 ... 23.列出所有員工的銷售業績 SELECT A.EMPLOYEE_ID, A.FIRST_NAME, A.LAST_NAME, SUM(B.ORDER_TOTAL) TOTAL FROM EMPLOYEES A LEFT JOIN ORDERS B ON (A.EMPLOYEE_ID = B.SALES_REP_ID) WHERE A.JOB_ID LIKE 'SA%' GROUP BY A.EMPLOYEE_ID, A.FIRST_NAME, A.LAST_NAME ORDER BY A.EMPLOYEE_ID; EMPLOYEE_ID FIRST_NAME LAST_NAME TOTAL ----------- -------------------- ------------------------- --------------------------------------- 145 John Russell NULL 146 Karen Partners NULL 147 Alberto Errazuriz NULL 148 Gerald Cambrault NULL 149 Eleni Zlotkey NULL 150 Peter Tucker NULL 151 David Bernstein NULL 152 Peter Hall NULL 153 Christopher Olsen 114215.70 154 Nanette Cambrault 171973.10 155 Oliver Tuvault 134415.20 156 Janette King 202617.60 157 Patrick Sully NULL 24.列出所有部門下的員工 SELECT A.DEPARTMENT_ID, A.DEPARTMENT_NAME, B.EMPLOYEE_ID, B.FIRST_NAME, B.LAST_NAME FROM DEPARTMENTS A LEFT JOIN EMPLOYEES B ON (A.DEPARTMENT_ID = B.DEPARTMENT_ID) ORDER BY A.DEPARTMENT_ID; DEPARTMENT_ID DEPARTMENT_NAME EMPLOYEE_ID FIRST_NAME LAST_NAME ------------- ------------------------------ ----------- -------------------- ------------------------- 10 Administration 200 Jennifer Whalen 20 Marketing 201 Michael Hartstein 20 Marketing 202 Pat Fay 30 Purchasing 114 Den Raphaely 30 Purchasing 115 Alexander Khoo 30 Purchasing 116 Shelli Baida 30 Purchasing 117 Sigal Tobias 30 Purchasing 118 Guy Himuro 30 Purchasing 301 NULL A 40 Human Resources 203 Susan Mavris 50 Shipping 180 Winston Taylor 50 Shipping 181 Jean Fleaur 50 Shipping 182 Martha Sullivan 25.列出薪資比員工編號7900高的員工 SELECT * FROM EMP WHERE SAL > (SELECT SAL FROM EMP WHERE EMPNO=7900) ORDER BY EMPNO; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----------- ---------- --------- ----------- ----------------------- --------------------------------------- --------------------------------------- ----------- 7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00.000 1600.00 300.00 30 7521 WARD SALESMAN 7698 1981-02-22 00:00:00.000 1250.00 500.00 30 7566 JONES MANAGER 7839 1981-04-02 00:00:00.000 2975.00 NULL 20 7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00.000 1250.00 1400.00 30 7698 BLAKE MANAGER 7839 1981-05-01 00:00:00.000 2850.00 NULL 30 7782 CLARK MANAGER 7839 1981-06-09 00:00:00.000 2450.00 NULL 10 7788 SCOTT ANALYST 7566 1987-04-19 00:00:00.000 3000.00 NULL 20 7839 KING PRESIDENT NULL 1981-11-17 00:00:00.000 5000.00 NULL 10 7844 TURNER SALESMAN 7698 1981-09-08 00:00:00.000 1500.00 0.00 30 7876 ADAMS CLERK 7788 1987-05-23 00:00:00.000 1100.00 NULL 20 7902 FORD ANALYST 7566 1981-12-03 00:00:00.000 3000.00 NULL 20 7934 MILLER CLERK 7782 1982-01-23 00:00:00.000 1300.00 NULL 10 26.列出各員工薪資佔該部門薪資成本的百分比 SELECT A.EMPNO, A.ENAME, A.DEPTNO, A.SAL, A.SAL*100/B.COST PCT FROM EMP A, (SELECT DEPTNO, SUM(SAL) COST FROM EMP GROUP BY DEPTNO) B WHERE A.DEPTNO = B.DEPTNO ORDER BY A.DEPTNO; EMPNO ENAME DEPTNO SAL PCT ----------- ---------- ----------- --------------------------------------- --------------------------------------- 7782 CLARK 10 2450.00 28.000000000000000000000000000 7839 KING 10 5000.00 57.142857142857142857142857142 7934 MILLER 10 1300.00 14.857142857142857142857142857 7902 FORD 20 3000.00 27.586206896551724137931034482 7876 ADAMS 20 1100.00 10.114942528735632183908045977 7788 SCOTT 20 3000.00 27.586206896551724137931034482 7369 SMITH 20 800.00 7.356321839080459770114942528 7566 JONES 20 2975.00 27.356321839080459770114942528 7654 MARTIN 30 1250.00 13.297872340425531914893617021 7698 BLAKE 30 2850.00 30.319148936170212765957446808 7499 ALLEN 30 1600.00 17.021276595744680851063829787 7521 WARD 30 1250.00 13.297872340425531914893617021 7844 TURNER 30 1500.00 15.957446808510638297872340425 7900 JAMES 30 950.00 10.106382978723404255319148936 27.列出各部門薪資最高的員工 SELECT A.* FROM EMP A, (SELECT DEPTNO, MAX(SAL) MAXSAL FROM EMP GROUP BY DEPTNO) B WHERE A.DEPTNO = B.DEPTNO AND A.SAL = B.MAXSAL ORDER BY A.DEPTNO; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----------- ---------- --------- ----------- ----------------------- --------------------------------------- --------------------------------------- ----------- 7839 KING PRESIDENT NULL 1981-11-17 00:00:00.000 5000.00 NULL 10 7902 FORD ANALYST 7566 1981-12-03 00:00:00.000 3000.00 NULL 20 7788 SCOTT ANALYST 7566 1987-04-19 00:00:00.000 3000.00 NULL 20 7698 BLAKE MANAGER 7839 1981-05-01 00:00:00.000 2850.00 NULL 30 28.列出各部門薪資成本佔全公司薪資總成本的百分比 SELECT A.EMPNO, A.ENAME, A.SAL, A.SAL*100/B.TOTAL PCT FROM EMP A, (SELECT SUM(SAL) TOTAL FROM EMP) B ORDER BY A.EMPNO; EMPNO ENAME SAL PCT ----------- ---------- --------------------------------------- --------------------------------------- 7369 SMITH 800.00 2.756244616709732988802756244 7499 ALLEN 1600.00 5.512489233419465977605512489 7521 WARD 1250.00 4.306632213608957795004306632 7566 JONES 2975.00 10.249784668389319552110249784 7654 MARTIN 1250.00 4.306632213608957795004306632 7698 BLAKE 2850.00 9.819121447028423772609819121 7782 CLARK 2450.00 8.440999138673557278208440999 7788 SCOTT 3000.00 10.335917312661498708010335917 7839 KING 5000.00 17.226528854435831180017226528 7844 TURNER 1500.00 5.167958656330749354005167958 7876 ADAMS 1100.00 3.789836347975882859603789836 7900 JAMES 950.00 3.273040482342807924203273040 7902 FORD 3000.00 10.335917312661498708010335917 7934 MILLER 1300.00 4.478897502153316106804478897 29.列出與JAMES員工相同部門的所有員工 SELECT * FROM EMP WHERE DEPTNO = (SELECT DEPTNO FROM EMP WHERE ENAME = 'JAMES') ORDER BY EMPNO; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----------- ---------- --------- ----------- ----------------------- --------------------------------------- --------------------------------------- ----------- 7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00.000 1600.00 300.00 30 7521 WARD SALESMAN 7698 1981-02-22 00:00:00.000 1250.00 500.00 30 7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00.000 1250.00 1400.00 30 7698 BLAKE MANAGER 7839 1981-05-01 00:00:00.000 2850.00 NULL 30 7844 TURNER SALESMAN 7698 1981-09-08 00:00:00.000 1500.00 0.00 30 7900 JAMES CLERK 7698 1981-12-03 00:00:00.000 950.00 NULL 30 30.列出員工資訊與該部門薪資的成本 SELECT A.EMPNO, A.ENAME, A.SAL, A.DEPTNO, B.COST FROM EMP A, (SELECT DEPTNO, SUM(SAL) COST FROM EMP GROUP BY DEPTNO) B WHERE A.DEPTNO = B.DEPTNO ORDER BY A.DEPTNO; EMPNO ENAME SAL DEPTNO COST ----------- ---------- --------------------------------------- ----------- --------------------------------------- 7782 CLARK 2450.00 10 8750.00 7839 KING 5000.00 10 8750.00 7934 MILLER 1300.00 10 8750.00 7902 FORD 3000.00 20 10875.00 7876 ADAMS 1100.00 20 10875.00 7788 SCOTT 3000.00 20 10875.00 7369 SMITH 800.00 20 10875.00 7566 JONES 2975.00 20 10875.00 7654 MARTIN 1250.00 30 9400.00 7698 BLAKE 2850.00 30 9400.00 7499 ALLEN 1600.00 30 9400.00 7521 WARD 1250.00 30 9400.00 7844 TURNER 1500.00 30 9400.00 7900 JAMES 950.00 30 9400.00 ``` 1. 顯示每一位員工的職務是XXXX並給予一個名稱Jobs cast t or n 值 SELECT CAST(EMPNO AS NVARCHAR)+' '+ENAME EMP, ' IS '+JOB JOB FROM EMP; EMP JOB ----------------------------------------- ------------- 7369 SMITH IS CLERK 7499 ALLEN IS SALESMAN 7521 WARD IS SALESMAN 7566 JONES IS MANAGER 7654 MARTIN IS SALESMAN 7698 BLAKE IS MANAGER 7782 CLARK IS MANAGER 7788 SCOTT IS ANALYST 7839 KING IS PRESIDENT 7844 TURNER IS SALESMAN 7876 ADAMS IS CLERK 7900 JAMES IS CLERK 7902 FORD IS ANALYST 7934 MILLER IS CLERK 2. 列出各部門中現有的職務分類 distinct不重複 SELECT DISTINCT DEPTNO, JOB FROM EMP ORDER BY DEPTNO; DEPTNO JOB ----------- --------- 10 CLERK 10 MANAGER 10 PRESIDENT 20 ANALYST 20 CLERK 20 MANAGER 30 CLERK 30 MANAGER 30 SALESMAN 3. 列出下表 SELECT EMPNO 編號, ENAME 姓名, JOB 職務, SAL 薪資 FROM EMP; 編號 姓名 職務 薪資 ----------- ---------- --------- --------------------------------------- 7369 SMITH CLERK 800.00 7499 ALLEN SALESMAN 1600.00 7521 WARD SALESMAN 1250.00 7566 JONES MANAGER 2975.00 7654 MARTIN SALESMAN 1250.00 7698 BLAKE MANAGER 2850.00 7782 CLARK MANAGER 2450.00 7788 SCOTT ANALYST 3000.00 7839 KING PRESIDENT 5000.00 7844 TURNER SALESMAN 1500.00 7876 ADAMS CLERK 1100.00 7900 JAMES CLERK 950.00 7902 FORD ANALYST 3000.00 7934 MILLER CLERK 1300.00 4. 列出姓名中含有M與A字母的員工 SELECT * FROM EMP WHERE ENAME LIKE '%M%' AND ENAME LIKE '%A%' EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----------- ---------- --------- ----------- ----------------------- --------------------------------------- --------------------------------------- ----------- 7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00.000 1250.00 1400.00 30 7876 ADAMS CLERK 7788 1987-05-23 00:00:00.000 1100.00 NULL 20 7900 JAMES CLERK 7698 1981-12-03 00:00:00.000 950.00 NULL 30 5. 列出職務為SALESMAN且COMM=0的員工 SELECT * FROM EMP WHERE JOB = 'SALESMAN' AND COMM = 0; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----------- ---------- --------- ----------- ----------------------- --------------------------------------- --------------------------------------- ----------- 7844 TURNER SALESMAN 7698 1981-09-08 00:00:00.000 1500.00 0.00 30 6. 列出1981年到職的員工 DATEPART=取出年月日時.. SELECT * FROM EMP WHERE DATEPART(YEAR,HIREDATE) = 1981 ORDER BY EMPNO; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----------- ---------- --------- ----------- ----------------------- --------------------------------------- --------------------------------------- ----------- 7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00.000 1600.00 300.00 30 7521 WARD SALESMAN 7698 1981-02-22 00:00:00.000 1250.00 500.00 30 7566 JONES MANAGER 7839 1981-04-02 00:00:00.000 2975.00 NULL 20 7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00.000 1250.00 1400.00 30 7698 BLAKE MANAGER 7839 1981-05-01 00:00:00.000 2850.00 NULL 30 7782 CLARK MANAGER 7839 1981-06-09 00:00:00.000 2450.00 NULL 10 7839 KING PRESIDENT NULL 1981-11-17 00:00:00.000 5000.00 NULL 10 7844 TURNER SALESMAN 7698 1981-09-08 00:00:00.000 1500.00 0.00 30 7900 JAMES CLERK 7698 1981-12-03 00:00:00.000 950.00 NULL 30 7902 FORD ANALYST 7566 1981-12-03 00:00:00.000 3000.00 NULL 20 7. 依各職務類別及薪資降冪排序 SELECT EMPNO, ENAME, JOB, SAL FROM EMP ORDER BY JOB, SAL DESC; EMPNO ENAME JOB SAL ----------- ---------- --------- ----------- 7788 SCOTT ANALYST 3000.00 7902 FORD ANALYST 3000.00 7934 MILLER CLERK 1300.00 7876 ADAMS CLERK 1100.00 7900 JAMES CLERK 950.00 7369 SMITH CLERK 800.00 7566 JONES MANAGER 2975.00 7698 BLAKE MANAGER 2850.00 7782 CLARK MANAGER 2450.00 7839 KING PRESIDENT 5000.00 7499 ALLEN SALESMAN 1600.00 7844 TURNER SALESMAN 1500.00 7521 WARD SALESMAN 1250.00 7654 MARTIN SALESMAN 1250.00 8. 顯示員工的資訊並依下列職務的順序排列 PRESIDENT MANAGER ANALYST CLERK SALESMAN SELECT EMPNO, ENAME, JOB FROM EMP ORDER BY CASE JOB WHEN 'PRESIDENT' THEN 1 WHEN 'MANAGER' THEN 2 WHEN 'ANALYST' THEN 3 WHEN 'CLERK' THEN 4 WHEN 'SALESMAN' THEN 5 ELSE 6 END; EMPNO ENAME JOB ----------- ---------- --------- 7839 KING PRESIDENT 7698 BLAKE MANAGER 7782 CLARK MANAGER 7566 JONES MANAGER 7788 SCOTT ANALYST 7902 FORD ANALYST 7934 MILLER CLERK 7876 ADAMS CLERK 7900 JAMES CLERK 7369 SMITH CLERK 7499 ALLEN SALESMAN 7521 WARD SALESMAN 7654 MARTIN SALESMAN 7844 TURNER SALESMAN 9. 依據職務計算出員工調整後的薪資 SALESMAN 調5% MANAGER 調7% PRESIDENT調10% 其餘的不變 SELECT EMPNO, ENAME, JOB, SAL, CASE JOB WHEN 'SALESMAN' THEN SAL*1.05 WHEN 'MANAGER' THEN SAL*1.07 WHEN 'PRESIDENT' THEN SAL*1.1 ELSE SAL END NEW_SAL FROM EMP ORDER BY JOB; EMPNO ENAME JOB SAL NEW_SAL ----------- ---------- --------- --------------------------------------- --------------------------------------- 7788 SCOTT ANALYST 3000.00 3000.0000 7902 FORD ANALYST 3000.00 3000.0000 7934 MILLER CLERK 1300.00 1300.0000 7876 ADAMS CLERK 1100.00 1100.0000 7900 JAMES CLERK 950.00 950.0000 7369 SMITH CLERK 800.00 800.0000 7566 JONES MANAGER 2975.00 3183.2500 7698 BLAKE MANAGER 2850.00 3049.5000 7782 CLARK MANAGER 2450.00 2621.5000 7839 KING PRESIDENT 5000.00 5500.0000 7844 TURNER SALESMAN 1500.00 1575.0000 7654 MARTIN SALESMAN 1250.00 1312.5000 7499 ALLEN SALESMAN 1600.00 1680.0000 7521 WARD SALESMAN 1250.00 1312.5000 10 .列出部門=10,各員工的年資 DATEDIFF ( datepart , startdate , enddate ) DATEADD (datepart , number , date ) SELECT EMPNO, ENAME, DATEDIFF ( YEAR , HIREDATE , GETDATE() ) 年資 FROM EMP WHERE DEPTNO = 10; EMPNO ENAME 年資 ----------- ---------- ----------- 7782 CLARK 39 7839 KING 39 7934 MILLER 38 11.列出下面的結果 REPLICATE=複製 CAST(SAL AS INT)=拿掉小數點 CAST(CAST(SAL AS INT) AS NVARCHAR)=nvarchar [ ( n | max ) ] SELECT EMPNO, ENAME, RIGHT(REPLICATE('*',10)+'$'+CAST(CAST(SAL AS INT) AS NVARCHAR),10), DEPTNO FROM EMP WHERE DEPTNO = 10; EMPNO ENAME DEPTNO ----------- ---------- ---------- ----------- 7782 CLARK *****$2450 10 7839 KING *****$5000 10 7934 MILLER *****$1300 10 12.依到職日排列下面的結果 datename(weekday,hidedate)=轉為星期 --SET LANGUAGE 繁體中文 SET LANGUAGE us_english; SELECT EMPNO, ENAME, HIREDATE, DATENAME(weekday, HIREDATE) DAYNAME FROM EMP ORDER BY CASE DATEPART(weekday, HIREDATE) WHEN 1 THEN 8 ELSE DATEPART(weekday, HIREDATE) END; Changed language setting to us_english. EMPNO ENAME HIREDATE DAYNAME ----------- ---------- ----------------------- ------------------------------ 7654 MARTIN 1981-09-28 00:00:00.000 Monday 7782 CLARK 1981-06-09 00:00:00.000 Tuesday 7839 KING 1981-11-17 00:00:00.000 Tuesday 7844 TURNER 1981-09-08 00:00:00.000 Tuesday 7369 SMITH 1980-12-17 00:00:00.000 Wednesday 7900 JAMES 1981-12-03 00:00:00.000 Thursday 7902 FORD 1981-12-03 00:00:00.000 Thursday 7566 JONES 1981-04-02 00:00:00.000 Thursday 7499 ALLEN 1981-02-20 00:00:00.000 Friday 7698 BLAKE 1981-05-01 00:00:00.000 Friday 7876 ADAMS 1987-05-23 00:00:00.000 Saturday 7934 MILLER 1982-01-23 00:00:00.000 Saturday 7788 SCOTT 1987-04-19 00:00:00.000 Sunday 7521 WARD 1981-02-22 00:00:00.000 Sunday 13.列出當月生日的員工 select *,datename(month,hiredate) birthday from emp where datepart(month,hiredate) = datepart(month,getdate()) order by 1 老師: SELECT * FROM EMP WHERE DATEPART(MONTH,HIREDATE) = DATEPART(MONTH,GETDATE()) ORDER BY EMPNO; 14.計算各職務的人員人數及薪資總和 COUNT(*)=計算總筆數 SUM=總和 SELECT JOB, COUNT(*) CNT, SUM(SAL) COST FROM EMP GROUP BY JOB ORDER BY 1; JOB CNT COST --------- ----------- --------------------------------------- ANALYST 2 6000.00 CLERK 4 4150.00 MANAGER 3 8275.00 PRESIDENT 1 5000.00 SALESMAN 4 5600.00 15.計算各職務的平均薪資且>2000,依平均值排序列出 SELECT JOB, AVG(SAL) FROM EMP GROUP BY JOB HAVING AVG(SAL)>2000 ORDER BY 2; JOB --------- --------------------------------------- MANAGER 2758.333333 ANALYST 3000.000000 PRESIDENT 5000.000000 16.列出各年度僱用的人數,如下表 SELECT SUM(CASE WHEN DATEPART(YEAR,HIREDATE)=1980 THEN 1 ELSE 0 END) YY1980, SUM(CASE WHEN DATEPART(YEAR,HIREDATE)=1981 THEN 1 ELSE 0 END) YY1981, SUM(CASE WHEN DATEPART(YEAR,HIREDATE)=1982 THEN 1 ELSE 0 END) YY1982, SUM(CASE WHEN DATEPART(YEAR,HIREDATE)=1983 THEN 1 ELSE 0 END) YY1983 FROM EMP; YY1980 YY1981 YY1982 YY1983 ----------- ----------- ----------- ----------- 1 10 1 0 17.列出下表 SELECT JOB, SUM(CASE WHEN DEPTNO=10 THEN 1 ELSE 0 END) DEPT10, SUM(CASE WHEN DEPTNO=20 THEN 1 ELSE 0 END) DEPT20, SUM(CASE WHEN DEPTNO=30 THEN 1 ELSE 0 END) DEPT30 FROM EMP GROUP BY JOB; JOB DEPT10 DEPT20 DEPT30 --------- ----------- ----------- ----------- ANALYST 0 2 0 CLERK 1 2 1 MANAGER 1 1 1 PRESIDENT 1 0 0 SALESMAN 0 0 4 18.統計各級數的員工人數, 並依級數排序 人數 薪資 0 ~ 1200 A級 薪資 1201 ~ 2000 B級 薪資 2001 ~ 2800 C級 薪資 2801 ~ 3500 D級 其他 E級 SELECT A.TYPE, COUNT(*) CNT FROM (SELECT CASE WHEN SAL BETWEEN 0 AND 1200 THEN 'A' WHEN SAL BETWEEN 1201 AND 2000 THEN 'B' WHEN SAL BETWEEN 2001 AND 2800 THEN 'C' WHEN SAL BETWEEN 2801 AND 3500 THEN 'D' ELSE 'E' END TYPE FROM EMP) A GROUP BY A.TYPE; TYPE CNT ---- ----------- A 3 B 5 C 1 D 4 E 1 19.列出各MANAGER中配置的員工人數 SELECT MGR, COUNT(*) CNT FROM EMP GROUP BY MGR; MGR CNT ----------- ----------- NULL 1 7566 2 7698 5 7782 1 7788 1 7839 3 7902 1 20.列出各部門的人數 SELECT DEPTNO, COUNT(*) CNT FROM EMP GROUP BY DEPTNO; DEPTNO CNT ----------- ----------- 10 3 20 5 30 6 21.列出所有客戶的總交易金額 SELECT A.CUSTOMER_ID, A.CUST_FIRST_NAME, A.CUST_LAST_NAME, SUM(B.ORDER_TOTAL) TOTAL FROM CUSTOMERS A LEFT JOIN ORDERS B ON (A.CUSTOMER_ID = B.CUSTOMER_ID) GROUP BY A.CUSTOMER_ID, A.CUST_FIRST_NAME, A.CUST_LAST_NAME ORDER BY A.CUSTOMER_ID, A.CUST_FIRST_NAME, A.CUST_LAST_NAME; CUSTOMER_ID CUST_FIRST_NAME CUST_LAST_NAME TOTAL ----------- -------------------- -------------------- --------------------------------------- 101 Constantin Welles 190395.10 102 Harrison Pacino 69211.40 103 Manisha Taylor 20591.40 104 Harrison Sutherland 146605.50 105 Matthias MacGraw 61376.50 106 Matthias Hannah 36199.50 107 Matthias Cruise 155613.20 108 Meenakshi Mason 213399.70 109 Christian Cage 265255.60 110 Charlie Sutherland NULL 111 Charlie Pacino NULL ... 22.列出所有商品的銷售量 SELECT A.PRODUCT_ID, A.PRODUCT_NAME, SUM(B.QUANTITY) QTY FROM PRODUCT_INFORMATION A LEFT JOIN ORDER_ITEMS B ON (A.PRODUCT_ID = B.PRODUCT_ID) GROUP BY A.PRODUCT_ID, A.PRODUCT_NAME ORDER BY A.PRODUCT_ID, A.PRODUCT_NAME; ... 1778 C for SPNIX3.3 - 1 Seat NULL 1779 C for SPNIX3.3 - Doc NULL 1780 C for SPNIX3.3 - Sys NULL 1781 CDW 20/48/E 9 1782 Compact 400/DQ 4 1787 CPU D300 5 1788 CPU D600 NULL 1791 Industrial 700/HD 3 1792 Industrial 600/DQ NULL 1794 OSI 8-16/IL NULL 1797 Inkjet C/8/HQ 28 ... 23.列出所有員工的銷售業績 老師:只找出SA開頭JOB SELECT A.EMPLOYEE_ID, A.FIRST_NAME, A.LAST_NAME, SUM(B.ORDER_TOTAL) TOTAL FROM EMPLOYEES A LEFT JOIN ORDERS B ON (A.EMPLOYEE_ID = B.SALES_REP_ID) WHERE A.JOB_ID LIKE 'SA%' GROUP BY A.EMPLOYEE_ID, A.FIRST_NAME, A.LAST_NAME ORDER BY A.EMPLOYEE_ID; SELECT a.EMPLOYEE_ID,a.FIRST_NAME,a.LAST_NAME,SUM(b.ORDER_TOTAL)[TOTAL] FROM EMPLOYEES a left join ORDERS b ON(a.EMPLOYEE_ID = b.ORDER_TOTAL) group by a.EMPLOYEE_ID,a.FIRST_NAME,a.LAST_NAME; EMPLOYEE_ID FIRST_NAME LAST_NAME TOTAL ----------- -------------------- ------------------------- --------------------------------------- 145 John Russell NULL 146 Karen Partners NULL 147 Alberto Errazuriz NULL 148 Gerald Cambrault NULL 149 Eleni Zlotkey NULL 150 Peter Tucker NULL 151 David Bernstein NULL 152 Peter Hall NULL 153 Christopher Olsen 114215.70 154 Nanette Cambrault 171973.10 155 Oliver Tuvault 134415.20 156 Janette King 202617.60 157 Patrick Sully NULL 24.列出所有部門下的員工 SELECT A.DEPARTMENT_ID, A.DEPARTMENT_NAME, B.EMPLOYEE_ID, B.FIRST_NAME, B.LAST_NAME FROM DEPARTMENTS A LEFT JOIN EMPLOYEES B ON (A.DEPARTMENT_ID = B.DEPARTMENT_ID) ORDER BY A.DEPARTMENT_ID; DEPARTMENT_ID DEPARTMENT_NAME EMPLOYEE_ID FIRST_NAME LAST_NAME ------------- ------------------------------ ----------- -------------------- ------------------------- 10 Administration 200 Jennifer Whalen 20 Marketing 201 Michael Hartstein 20 Marketing 202 Pat Fay 30 Purchasing 114 Den Raphaely 30 Purchasing 115 Alexander Khoo 30 Purchasing 116 Shelli Baida 30 Purchasing 117 Sigal Tobias 30 Purchasing 118 Guy Himuro 30 Purchasing 301 NULL A 40 Human Resources 203 Susan Mavris 50 Shipping 180 Winston Taylor 50 Shipping 181 Jean Fleaur 50 Shipping 182 Martha Sullivan 25.列出薪資比員工編號7900高的員工 SELECT * FROM EMP WHERE SAL > (SELECT SAL FROM EMP */-------------///////////////////////////////////////////////////////////////////////// WHERE EMPNO=7900) ORDER BY EMPNO; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----------- ---------- --------- ----------- ----------------------- --------------------------------------- --------------------------------------- ----------- 7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00.000 1600.00 300.00 30 7521 WARD SALESMAN 7698 1981-02-22 00:00:00.000 1250.00 500.00 30 7566 JONES MANAGER 7839 1981-04-02 00:00:00.000 2975.00 NULL 20 7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00.000 1250.00 1400.00 30 7698 BLAKE MANAGER 7839 1981-05-01 00:00:00.000 2850.00 NULL 30 7782 CLARK MANAGER 7839 1981-06-09 00:00:00.000 2450.00 NULL 10 7788 SCOTT ANALYST 7566 1987-04-19 00:00:00.000 3000.00 NULL 20 7839 KING PRESIDENT NULL 1981-11-17 00:00:00.000 5000.00 NULL 10 7844 TURNER SALESMAN 7698 1981-09-08 00:00:00.000 1500.00 0.00 30 7876 ADAMS CLERK 7788 1987-05-23 00:00:00.000 1100.00 NULL 20 7902 FORD ANALYST 7566 1981-12-03 00:00:00.000 3000.00 NULL 20 7934 MILLER CLERK 7782 1982-01-23 00:00:00.000 1300.00 NULL 10 26.列出各員工薪資佔該部門薪資成本的百分比 老師: SELECT A.EMPNO, A.ENAME, A.DEPTNO, A.SAL, A.SAL*100/B.COST PCT FROM EMP A, (SELECT DEPTNO, SUM(SAL) COST FROM EMP GROUP BY DEPTNO) B WHERE A.DEPTNO = B.DEPTNO ORDER BY A.DEPTNO; --SELECT *,SAL*100/(SELECT SUM(SAL)FROM EMP WHERE DEPTNO=A.DEPTNO) PCT FROM EMP A ORDER BY 8 EMPNO ENAME DEPTNO SAL PCT ----------- ---------- ----------- --------------------------------------- --------------------------------------- 7782 CLARK 10 2450.00 28.000000000000000000000000000 7839 KING 10 5000.00 57.142857142857142857142857142 7934 MILLER 10 1300.00 14.857142857142857142857142857 7902 FORD 20 3000.00 27.586206896551724137931034482 7876 ADAMS 20 1100.00 10.114942528735632183908045977 7788 SCOTT 20 3000.00 27.586206896551724137931034482 7369 SMITH 20 800.00 7.356321839080459770114942528 7566 JONES 20 2975.00 27.356321839080459770114942528 7654 MARTIN 30 1250.00 13.297872340425531914893617021 7698 BLAKE 30 2850.00 30.319148936170212765957446808 7499 ALLEN 30 1600.00 17.021276595744680851063829787 7521 WARD 30 1250.00 13.297872340425531914893617021 7844 TURNER 30 1500.00 15.957446808510638297872340425 7900 JAMES 30 950.00 10.106382978723404255319148936 27.列出各部門薪資最高的員工 SELECT A.* FROM EMP A, (SELECT DEPTNO, MAX(SAL) MAXSAL FROM EMP GROUP BY DEPTNO) B WHERE A.DEPTNO = B.DEPTNO AND A.SAL = B.MAXSAL ORDER BY A.DEPTNO; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----------- ---------- --------- ----------- ----------------------- --------------------------------------- --------------------------------------- ----------- 7839 KING PRESIDENT NULL 1981-11-17 00:00:00.000 5000.00 NULL 10 7902 FORD ANALYST 7566 1981-12-03 00:00:00.000 3000.00 NULL 20 7788 SCOTT ANALYST 7566 1987-04-19 00:00:00.000 3000.00 NULL 20 7698 BLAKE MANAGER 7839 1981-05-01 00:00:00.000 2850.00 NULL 30 28.列出各部門薪資成本佔全公司薪資總成本的百分比 SELECT A.EMPNO, A.ENAME, A.SAL, A.SAL*100/B.TOTAL PCT FROM EMP A, (SELECT SUM(SAL) TOTAL FROM EMP) B ORDER BY A.EMPNO; EMPNO ENAME SAL PCT ----------- ---------- --------------------------------------- --------------------------------------- 7369 SMITH 800.00 2.756244616709732988802756244 7499 ALLEN 1600.00 5.512489233419465977605512489 7521 WARD 1250.00 4.306632213608957795004306632 7566 JONES 2975.00 10.249784668389319552110249784 7654 MARTIN 1250.00 4.306632213608957795004306632 7698 BLAKE 2850.00 9.819121447028423772609819121 7782 CLARK 2450.00 8.440999138673557278208440999 7788 SCOTT 3000.00 10.335917312661498708010335917 7839 KING 5000.00 17.226528854435831180017226528 7844 TURNER 1500.00 5.167958656330749354005167958 7876 ADAMS 1100.00 3.789836347975882859603789836 7900 JAMES 950.00 3.273040482342807924203273040 7902 FORD 3000.00 10.335917312661498708010335917 7934 MILLER 1300.00 4.478897502153316106804478897 29.列出與JAMES員工相同部門的所有員工 SELECT * FROM EMP WHERE DEPTNO = (SELECT DEPTNO FROM EMP WHERE ENAME = 'JAMES') ORDER BY EMPNO; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----------- ---------- --------- ----------- ----------------------- --------------------------------------- --------------------------------------- ----------- 7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00.000 1600.00 300.00 30 7521 WARD SALESMAN 7698 1981-02-22 00:00:00.000 1250.00 500.00 30 7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00.000 1250.00 1400.00 30 7698 BLAKE MANAGER 7839 1981-05-01 00:00:00.000 2850.00 NULL 30 7844 TURNER SALESMAN 7698 1981-09-08 00:00:00.000 1500.00 0.00 30 7900 JAMES CLERK 7698 1981-12-03 00:00:00.000 950.00 NULL 30 30.列出員工資訊與該部門薪資的成本 SELECT A.EMPNO, A.ENAME, A.SAL, A.DEPTNO, B.COST FROM EMP A, (SELECT DEPTNO, SUM(SAL) COST FROM EMP GROUP BY DEPTNO) B WHERE A.DEPTNO = B.DEPTNO ORDER BY A.DEPTNO; EMPNO ENAME SAL DEPTNO COST ----------- ---------- --------------------------------------- ----------- --------------------------------------- 7782 CLARK 2450.00 10 8750.00 7839 KING 5000.00 10 8750.00 7934 MILLER 1300.00 10 8750.00 7902 FORD 3000.00 20 10875.00 7876 ADAMS 1100.00 20 10875.00 7788 SCOTT 3000.00 20 10875.00 7369 SMITH 800.00 20 10875.00 7566 JONES 2975.00 20 10875.00 7654 MARTIN 1250.00 30 9400.00 7698 BLAKE 2850.00 30 9400.00 7499 ALLEN 1600.00 30 9400.00 7521 WARD 1250.00 30 9400.00 7844 TURNER 1500.00 30 9400.00 7900 JAMES 950.00 30 9400.00