面试题目回顾(二)
By  凌云志 发表于 2007-10-28 13:21:00 

有表yg(员工),表bm(部门)两个表,其结构与内容如下:

mysql> desc yg;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | bigint(20)   | NO   | PRI | NULL    | auto_increment |
| name  | varchar(100) | YES  |     | NULL    |                |
| fid   | bigint(20)   | YES  |     | NULL    |                |
| sal   | float        | YES  |     | NULL    |                |
| depNo | int(11)      | YES  | MUL | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
5 rows in set
mysql> select * from yg;
+----+----------+------+-----+-------+
| id | name     | fid  | sal | depNo |
+----+----------+------+-----+-------+
|  1 | zhangsan | NULL | 100 |     1 |
|  2 | lisi     |    1 |  12 |     1 |
|  3 | wangwu   |    1 |  13 |     2 |
|  4 | zhaoliu  |    3 |  90 |     3 |
|  5 | weihu    |    3 |  23 |     3 |
|  6 | maba     |    1 |  33 |     4 |
|  7 | haizi    |    4 |  80 |     1 |
+----+----------+------+-----+-------+
7 rows in set
mysql> desc bm;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | bigint(20)   | NO   | PRI | NULL    | auto_increment |
| depNo | int(11)      | YES  | MUL | NULL    |                |
| name  | varchar(255) | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
3 rows in set
mysql> select * from bm;
+----+-------+------------+
| id | depNo | name       |
+----+-------+------------+
|  1 |     1 | 网银事业部 |
|  2 |     2 | 公共事业部 |
|  3 |     3 | 财务部     |
|  4 |     4 | 销售部     |
+----+-------+------------+
4 rows in set 

请你写出以下条件的sql:
1.请你列出每个员工的id,name,fname(注:员工直接上司,表yg是个自关联关系的表),sal。
2.请你统计每个部门所有员工的工资总和。

结果如下:
1题答案:
mysql> select a.id,a.name,b.name as fname from yg a,yg b where a.fid=b.id;
+----+---------+----------+
| id | name    | fname    |
+----+---------+----------+
|  2 | lisi    | zhangsan |
|  3 | wangwu  | zhangsan |
|  4 | zhaoliu | wangwu   |
|  5 | weihu   | wangwu   |
|  6 | maba    | zhangsan |
|  7 | haizi   | zhaoliu  |
+----+---------+----------+
6 rows in set

2题答案:
mysql> select b.name as '部门名称',sum(a.sal) as '部门员工工资总和' from yg a,bm b where a.depNo=b.depNo group by a.depNo;
+------------+------------------+
| 部门名称   | 部门员工工资总和 |
+------------+------------------+
| 网银事业部 |              192 |
| 公共事业部 |               13 |
| 财务部     |              113 |
| 销售部     |               33 |
+------------+------------------+
4 rows in set
 
阅读全文 | 回复(0) | 引用通告 | 编辑

发表评论:

    密码:
    主页:
    标题:
    页面数据正在载入...

 
站点公告
莫忘:锻炼身体;提高技能;修身养性。
欢迎光临:www.javaedu.com
与我联系:beanor@gmail.com
站点日历
<<  < 2007 - 10 >  >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
最新日志
最新评论
最新留言
友情链接
站点统计
日志搜索
用户登陆

 
bxna 京ICP备05002321号