SQL面试笔试题
一、已知
項目表 prj
| Prj_id | 項目編碼 |
| Prj_name | 項目名稱 |
| Prj_num | 項目金額 |
| Prj_id | 項目經理(人員編碼) |
| Prj_lev | 項目經理等級 |
人員表 per
| Per_id | 人員編碼 |
| Per_name | 人員項目 |
| Per_job | 人員職稱 |
| Dep_id | 所屬部門(部門編碼) |
部門表 dep
| Dep_id | 部門編碼 |
| Dep_name | 部門名稱 |
| Dep_lead | 部門經理 |
1.請使用SQL語句查詢出所有項目、項目經理的名稱及其所屬部門的名稱。
SELECT prj_name,per_name,Dep_name FROM prj INNER JOIN per ON prj.`Per_id`=per.`Per_id` INNER JOIN dep ON per.`Dep_id`=dep.`Dep_id`2.請使用SQL將沒有人員的部門從部門表中刪除。
DELETE FROM dep WHERE Dep_id NOT IN(SELECT Dep_id FROM per )3.請使用SQL語句查詢出部門業績超過50萬的部門經理名稱及其部門業績總額。
SELECT DEP_lead,SUM(prj_num) AS 業績總額 FROM dep LEFT JOIN per ON dep.`Dep_id`=per.`Dep_id` LEFT JOIN prj ON per.`Per_id`=prj.`Per_id` GROUP BY DEP_lead HAVING SUM(prj_num)>5000004.對員工進行評級,初級員工業績超過50萬為優,30萬至50萬為良,10萬至30萬為合格,10萬以下為不合格;中級員工業績超過80萬為優,50萬至80萬為良,20萬至50萬為合格,20萬以下為不合格;高級員工業績超過200萬為優,100萬至200萬為良,50萬至100萬為合格,50萬以下為不合格。請使用SQL語句完成并展示結果:人員姓名和對應的考評登記。
SELECT per_name, CASE WHEN Per_lev =1 THEN CASE WHEN SUM(prj_num) >=500000 THEN '優' WHEN SUM(prj_num) >=300000 AND SUM(prj_num)<500000 THEN '良'WHEN SUM(prj_num) >=100000 AND SUM(prj_num)<300000 THEN '合格'WHEN SUM(prj_num)<100000 THEN '不合格'END WHEN Per_lev =2 THEN CASE WHEN SUM(prj_num) >=800000 THEN '優' WHEN SUM(prj_num) >=500000 AND SUM(prj_num)<800000 THEN '良'WHEN SUM(prj_num) >=200000 AND SUM(prj_num)<500000 THEN '合格'WHEN SUM(prj_num)<200000 THEN '不合格'END WHEN Per_lev =3 THEN CASE WHEN SUM(prj_num) >=2000000 THEN '優' WHEN SUM(prj_num) >=1000000 AND SUM(prj_num)<2000000 THEN '良'WHEN SUM(prj_num) >=5000000 AND SUM(prj_num)<1000000 THEN '合格'WHEN SUM(prj_num)<500000 THEN '不合格'END END 等級 FROM per LEFT JOIN prj ON per.`Per_id`=prj.`Per_id` GROUP BY per_name
最后附上SQL表結構語句
總結
- 上一篇: 机器学习:邹博邹伟教学
- 下一篇: Windos下navcat连接虚拟机中的