Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --1)listar todos los datos de departments
- select *
- from departments;
- --2)listar nombre apellido y fecha de nacimiento de todas las empleadas
- select first_name, last_name, birth_date
- from employees
- where gender= 'F';
- --3)listar los empleados hombres cuya fecha de contratacion es anterior al 1ro de enero de 1990
- select first_name, last_name
- from empleados
- where gender='M' and hire_date <= '1999-12-31';
- --4)listar los nombres de los empleados hombres cuya fecha de nacimiento es anterior a 1955 pero que fueron contratados despues de 1995, y de las mujeres que nacieron despues de 1956 y que fueron contratadas antes de 1990
- select first_name, last_name
- from employees
- where gender='M' and birth_date <= '1994-12-31' and hire_date >= '1996-01-01' or gender='F' and birth_date >= '1957-01-01' and hire_date <= '1989-12-31';
- --5)LISTAR DCUENTO DE IDENTIDAD Y APELLIDO de los empleados de sexo femenino que fueron contratados despues de 1996 o que nacieron antes de 1960
- select emp_no, last_name, gender
- from employees
- where gender='F' and (hire_date >= '1997-01-01' or birth_date <='1959-12-31')
- --6)listar los nombres de los cargos registrados en la base de datos
- select title
- from titles
- --7) listar los diferentes cargos listads en la base de datos
- select distinct title
- from titles
- --8)listar los diferentes apelidos registrados en la base de datos
- select distinct last_name
- from employees
- --9)obtener el nombre completo de las empleadas de las que no se tiene registrada su fecha de nacimiento
- select first_name, last_name
- from employees
- where gender ='F' and birth_date is null
- --10)obtener un listado con los codigos de departamento que tienen o han tenido asignado un gerente
- select dept_no
- from dept_manager
- where emp_no is not null
- --11)listar el nombre completo de los empleados que fueron contratados en la primera mitad de los años 90's
- select first_name, last_name
- from employees
- where hire_date between '1990-07-01' and '1995-01-01'
- --12)obtener un listado con los codigos de los empleados que tubieron un slario entre 70000 y 90000 dlrs durante la decada de los 90's. solo nos interesa que cada codigo de epleado aparesca solo una vez.
- select distinct emp_no
- from salaries
- where from_date between'1990-01-01' and '1999-12-31' and salary between 70000 and 90000
- --13)listar os diferentes apellidos registrados en la base de datos que inician con la letra z
- select distinct last_name
- from employee
- where last_name like 'Z'
- --14)listar los nombres de las empleadas que contengan una x en su nombre
- select distinct first_name
- from employees
- where gender='F' and first_name like '%x%'
- --15)listar los nombres de los empleados cuyo nobre tiene una h minuscula como segundo caracter
- select distinct first_name
- from employees
- where first_name like '_h%'
- --16)listar el id de los empleados que se vincularon a los deptos d001, d004 o d007 antes de 1986
- select distinct emp_no
- from dept_emp
- where dept_no in ('d001','d004','d007') and from_date<'1986-01-01'
- --17)obtener un listado alfabetico de os nombres de departaento registrados en la bd
- select det_name emp_no
- from departments
- order by det_name
- --18)obtener un listado con apellido nombre y fecha de contratacion de los empleados hombres visualizando primero aquellos eleados cuya fecha de vinculacion es mas reciente; en el caso de que hallan empleados con la misma fecha de vinculacion, se deben presentar alfabeticamente
- select last_name, first_name, hire_date
- from employees
- where gender='M'
- order by hire_date desc, last_name, first_name
- --19)listar de acuerdo a la fecha de contratacion los nombres completos de los epleados que han sido gerentes del departamento d004
- select first_name last_name, hire_date from employees where emp_no in
- (select emp_no
- from dept_manager
- where dept_no='d004')
- order by hire_date
- --20)listar alfabeticamente el nombre completo de los epleados que hen ocupado el cargo de ingeniero
- select first_name, last_name from employees where emp_no in
- (select emp_no
- from titles
- where title='Engineer')
- order by first_name, last_name
- --21)realizar consulta 21 buscando algun campo asociado con la palabra ingeniero
- select first_name, last_name from employees where emp_no in
- (select emp_no
- from titles
- where title like '%Engineer%')
- order by first_name, last_name
- --22)calcular la cantidad de empleados registrados en la BD
- select count(*)
- from employees
- --23)calcular la cantidad de gerentes que ha tenido el depto d006
- select distinct count(emp_no)
- from dept_manager
- where dept_no='d006'
- --24)calcular el valor total pagado por salarios en 1990
- select sum(salary)
- from salaries
- where from_date <= '1990-12-31' and to_date >='1990-01-01'
- --25)encntrar la fecha de nacimiento del empleado mas joven de la compañia
- select max(birth_date)
- from employees
- --26)encontrar la fecha de naciiento del empleado de mayor edad que ha sido gerente del depto d004
- select min(birth_date)
- from employees
- where emp_no in
- (select emp_no
- from dept_manager
- where dept_no='d004')
- --27)calcular el valor promedio de los salarios que ha tenido el empleado 11038
- select round(avg(salary),2)
- from salaries
- where emp_no ='11038'
- --28)calcular la cantidad de gerentes que he tenido cada depto
- select dept_no, count(*)
- from dept_manager
- group by dept_no
- order by dept_no
- select dept_no, count(*) from dept_manager group by dept_no order by count(*) desc
- select dept_no as Departamento, count(*) AS Total_gtes
- from dept_manager
- group by Departamento
- order by Total_gtes
- --29)encontrar la fecha de vinculacion mas reciente de un empleado en cada departamento
- select dept_no as Departamento, max(from_date) as Fecha
- from dept_emp
- group by Departamentoc
- order by Departamento
- --30)calcular el valor promedio de los salarios que recibio cada empleado antes de 1987
- select emp_no as Empleado, round(avg(salary),2) as Promedio
- from salaries
- where from_date <= '1986-12-31'
- group by Empleado
- order by Empleado
- --31)listar en orden descendente la cantidad de cargos que ha tenido cada epleado contratado antes de 1986
- select emp_no as Empleado, count(title) as Cargos
- from titles
- where emp_no in
- (select emp_no
- from employees
- where hire_date <= '1985-12-31')
- group by Empleado
- order by Cargos desc
- --32)calcular la cantidad de gerentes que ha tenido cada depto siempre y cuando esta cantidad sea superior a 3
- select dept_no as Depto, count(*)
- from dept_manager
- group by Depto
- having count(*) > 3
- order by Depto
- --33)generar un listado desendente con el valor promedio del salario de cada empleado contratado antes de 1995, sepre y cuando este promedio sea superior a $135000
- select emp_no as Empleado,
- round(avg(salary),2)
- from salaries
- where emp_no in(
- select emp_no
- from employees
- where hire_date <= '1994-12-31'
- )
- group by Empleado
- having avg(salary) > 135000
- order by avg(salary) desc
- --ej)renombramiento
- select E.last_name, E.first_name
- from employees E
- where E.hire_date < '1986-01-01'
- --ej)producto cartesiano
- select *
- from departments d1, departments d2
- select *
- from departments, dept_manager
- where departments.dept_no = dept_manager.dept_no
- --34)generar un listado con el numero, apellido y nombre de los empleados y el cargo que tienen o han tenido
- select employees.emp_no, last_name, first_name, title
- from employees, titles
- where employees.emp_no = titles.emp_no
- order by last_name, first_name
- --35) pregunta 34 aplicando inner join
- select employees.emp_no, last_name, first_name, title
- from employees inner join titles
- on employees.emp_no = titles.emp_no
- order by last_name, first_name
- --36)generar una lista alfabetica con el nombre de los deptos y el nobre de sus gerentes junto con la fecha de inicio en el cargo, en orden cronologico por cada depto
- select dept_name, last_name, first_name, from_date
- from departments inner join dept_manager
- on departments.dept_no = dept_manager.dept_no
- inner join employees
- on employees.emp_no = dept_manager.emp_no
- order by from_date desc
- --37)obtener para cada depto (nombre depto) la cantidad de gerentes que ha tenido
- select dept_name, count(*)
- from departments inner join dept_manager
- on departments.dept_no = dept_manager.dept_no
- group by dept_name
- otra forma:
- select dept_name, count(emp_no)
- from departments, dept_manager
- where departments.dept_no = dept_manager.dept_no
- group by dept_name
- --38)calcular la cantidad de empleados que han tenido el cargo de ingeniero y que ademas han sido gerentes de deptos
- select count(*) from dept_manager
- where emp_no in
- (select emp_no from titles
- where title ilike '%engineer%')
- --39)sabiendo que al empleado 11038 se le descuenta el 17% de su salario, calcular el valor de dicho descuento en cada uno de sus salarios
- select salary*017
- from salaries
- where emp_no = '11038'
- --40)calcular el mismo descuento sobre el salario mas reciente del empleado 11038
- select salary*017, from_date, to_date
- from salaries
- where emp_no = '11038' and to_date in
- (select max(to_date)
- from salaries
- where emp_no = '11038')
- --41)calcular el 17% sobre el total de salarios del empleado
- select sum(salary)*0.17
- from salaries
- where emp_no = '11038'
- --42)incrementar en el 10% el salario actual de los empleados
- update salaries
- set salary = salary*1.1
- where to_date = '9999-01-01'
- --43)cambiar el nombre de dpt de recursos humanos por el de gestion humana
- update departments
- set dept_name = 'Human Management'
- where dept_name = 'Human Resources'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement