26、汇总各个部门当前员工的title类型的分配数目

1、题目描述

汇总各个部门当前员工的title类型的分配数目,结果给出部门编号dept_no、dept_name、其当前员工所有的title以及该类型title对应的数目count
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 IF NOT EXISTS `titles` (
`emp_no` int(11) NOT NULL,
`title` varchar(50) NOT NULL,
`from_date` date NOT NULL,
`to_date` date DEFAULT NULL);

输入描述:

输出描述:

dept_no dept_name title count
d001 Marketing Senior Engineer 1
d001 Marketing Staff 1
d002 Finance Senior Engineer 1
d003 Human Resources Senior Staff 1
d004 Production Senior Engineer 2
d005 Development Senior Staff 1
d006 Quality Management Engineer 2
d006 Quality Management Senior Engineer

2、代码:

select t1.dept_no,dp.dept_name,t1.title,t1.count
from (
select d.emp_no,d.dept_no,t.title,count(1) as count
from dept_emp d
inner join titles t on d.emp_no=t.emp_no and d.to_date=‘9999-01-01‘ and t.to_date=‘9999-01-01‘
group by d.dept_no,t.title ) t1
inner join departments dp
on t1.dept_no=dp.dept_no ;

原文地址:https://www.cnblogs.com/guoyu1/p/12706706.html

时间: 2024-10-30 06:30:24

26、汇总各个部门当前员工的title类型的分配数目的相关文章

查询出部门名称、部门的员工数、部门的平均工资、部门的最低收入雇员姓名和最高收入雇员的姓名

如题: 查询出部门名称.部门的员工数.部门的平均工资.部门的最低收入雇员姓名和最高收入雇员的姓名 这是oracle的默认Scott用户下面的emp 和 dept 表间的一道思考题. 雇员表(emp) 记录了每个雇员的基本信息 NO  字段         类型            描述 1     empno       Number(4)    雇员编号 2     ename       Varchar2(10)      雇员姓名 3     job         Varchar2(9

4.有关日期格式属性改动常识,v$nls_parameters,between and,查询指定部门的员工信息,in和null,like模糊查询,order by后面能够跟:列名、表达式、别名、序号

?? 1 有关日期格式属性改动常识 NLS_DATE_FORMAT           DD-MON-RR select sysdate from dual; NLS_CURRENCY                ¥ 能够通过以下的方式查到上面的格式默认參数: 2 v$nls_parameters SQL>select * from v$nls_parameters; 结果略: 3改动默认參数 alter session set NLS_DATE_FORMAT='DD-MON-RR'; alt

映射:一对多(部门对员工)和多对一(员工对部门)

package dao.po; import java.util.Set; //部门类 public class Department{ private int id;//部门的ID private String name;//部门的名称 private Set<Employee> emps;//部门下的所有员工 (一对多关系) } package dao.po; //员工类 public class Employee{ private int id;// 员工的ID private Stri

4.有关日期格式属性修改常识,v$nls_parameters,between and,查询指定部门的员工信息,in和null,like模糊查询,order by后面可以跟:列名、表达式、别名、序号

 1  有关日期格式属性修改 常识 NLS_DATE_FORMAT           DD-MON-RR select sysdate from dual; NLS_CURRENCY                 ¥ 可以通过下面的方式查到上面的格式默认参数: 2  v$nls_parameters SQL>select * from v$nls_parameters; 结果略: 3 修改默认参数 alter session set NLS_DATE_FORMAT='DD-MON-RR'

查找所有已经分配部门的员工的last_name和first_name之SQL实现

题目描述 查找所有已经分配部门的员工的last_name和first_nameCREATE 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 `employees` (`emp_no` int(11) NOT NU

SQL-57 使用含有关键字exists查找未分配具体部门的员工的所有信息。

题目描述 使用含有关键字exists查找未分配具体部门的员工的所有信息.CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,`hire_date` date NOT NULL,PRIMARY KEY (`em

统计出当前各个title类型对应的员工当前(to_date=&#39;9999-01-01&#39;)薪水对应的平均工资。结果给出title以及平均工资avg

我个人觉得其实不用加AND t.to_date = '9999-01-01'这条限制, 因为当两个表中的工号相同时,s表中的日期做了限制,就可以说明 进行连接的那条 titles 表中的数据一定是有效的,不知道我这样理解是否正确! 或者也可以使用where条件,这样就不用进行两个表的连接了 where条件是先在两个表中选择若干满足条件的行,然后再对选出来的数据进行分组,最后使用聚合函数avg 统计出当前各个title类型对应的员工当前(to_date='9999-01-01')薪水对应的平均工资

SQL 由人员汇总到部门树递归合计总数函数

1.由人员计算出总数,在部门树(tree)按结构汇总(主父绑定) CREATE function [dbo].[GetEmpDepNum] ( @ID int ) RETURNS @Tree Table (ID [int] IDENTITY (1, 1),PID Int,FID Int,SN Varchar(150), Name Varchar(150), Num Varchar(150)) as begin declare @MaxNum int,@i int,@f int,@sNnm int

oracle实现查询每一个部门的员工的基本信息详细举例

--先删除原先存在的表: drop table emp; --创建表emp create table emp ( deptno number, ename varchar2(20), sal number ); --插入数据 --部门1的员工信息 insert into emp values(1,'王嘻嘻1',15000); insert into emp values(1,'王嘻嘻2',1500); insert into emp values(1,'王嘻嘻3',115000); insert