您的位置:首页 > 其它

统计各个部门对应员工涨幅的次数总和,给出部门编码dept_no、部门名称dept_name以及次数sum

2018-11-13 00:26 183 查看
版权声明:matthew_Leung https://blog.csdn.net/mathew_leung/article/details/84001520

统计各个部门对应员工涨幅的次数总和,给出部门编码dept_no、部门名称dept_name以及次数sum
CREATE TABLE `departments` (
`dept_no` char(4) NOT NULL,
`dept_name` varchar(40) NOT NULL,
PRIMARY KEY (`dept_no`));
CREATE TABLE `dept_emp` (
`emp_no` int(11) NOT NULL,
`dept_no` char(4) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));

输入描述:

输出描述:

 
dept_no dept_name sum
d001 Marketing 24
d002 Finance 14
d003 Human Resources 13
d004 Production 24
d005 Development 25
d006 Quality Management 25

示例1

输入

复制

输出

复制

[code]--统计各个部门对应员工涨幅的次数总和,给出部门编码dept_no、部门名称dept_name以及次数sum
SELECT
d.dept_no,
dept.dept_name,
count( salary )
FROM
salaries s,
dept_emp d,
departments dept
WHERE
s.emp_no = d.emp_no
AND d.dept_no = dept.dept_no
GROUP BY
dept.dept_no;
--第二种方法
SELECT
de.dept_no,
dp.dept_name,
COUNT( s.salary ) AS sum
FROM
( dept_emp AS de INNER JOIN salaries AS s ON de.emp_no = s.emp_no )
INNER JOIN departments AS dp ON de.dept_no = dp.dept_no
GROUP BY
de.dept_no;

/*解题思路:
使用部门进行分类,而且思考数据中的关系,利用更少的条件,完成检索*/

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐