Oracle - Oracle SQL Developer

 
Vista:
sin imagen de perfil

Oracle SQL Developer

Publicado por alesam (1 intervención) el 17/01/2020 19:24:14
Hola Buenas Noches, tengo una tarea de SQL pero no eh podido realizar estos ultimos 3 ejercicios; hay alguine que me pueda ayudar, lo agradeceria mucho. son de Oracle SQL Developer.

1 Dé el nombre y apellido de los gestores de departamento y nombre del departamento en los que alguna vez ha cesado un empleado. Ordene la salida por apellido.

2 Para las ciudades de la base de datos que hay departamentos, calcular el número de trabajadores que hay. Ordene la salida por nombre de ciudad.

3 Para toda ciudad de la base de datos, eche la cantidad de trabajadores que trabaja en alguno de los departamentos de la ciudad. Dé la salida ordenada por ciudad y luego por cantidad de trabajadores.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Oracle SQL Developer

Publicado por anonymous (15 intervenciones) el 17/01/2020 21:00:02
No envías las tablas, supongo que son las que vienen bajo el esquema HR de Oracle

--1 Dé el nombre y apellido de los gestores de departamento Ordene la salida por apellido.
SELECT (E.FIRST_NAME ||' '||E.LAST_NAME) AS Empleado, J.JOB_TITLE
FROM HR.EMPLOYEES E
INNER JOIN HR.JOBS J ON J.JOB_ID = E.JOB_ID
WHERE J.JOB_TITLE LIKE '%Manager%'
ORDER BY E.LAST_NAME

--Nombre del departamento en los que alguna vez ha cesado un empleado
SELECT D.DEPARTMENT_NAME, (E.FIRST_NAME ||' '||E.LAST_NAME) AS Empleado
FROM JOB_HISTORY JH
INNER JOIN DEPARTMENTS D ON D.DEPARTMENT_ID = JH.DEPARTMENT_ID
INNER JOIN EMPLOYEES E ON E.EMPLOYEE_ID = JH.EMPLOYEE_ID
WHERE (NOT EXISTS
(SELECT EY.EMPLOYEE_ID
FROM EMPLOYEES EY
WHERE (JH.EMPLOYEE_ID = EY.EMPLOYEE_ID)))
ORDER BY E.LAST_NAME

--2 Para las ciudades de la base de datos que hay departamentos, calcular el número de trabajadores que hay.
--Ordene la salida por nombre de ciudad.
SELECT
l.city,
l.state_province,
c.country_name,
r.region_name, COUNT(*) AS Cantidad
FROM
employees e,
departments d,
jobs j,
locations l,
countries c,
regions r
WHERE e.department_id = d.department_id
AND d.location_id = l.location_id
AND l.country_id = c.country_id
AND c.region_id = r.region_id
AND j.job_id = e.job_id
GROUP BY l.city,
l.state_province,
c.country_name,
r.region_name
ORDER BY l.city


--3 Para toda ciudad de la base de datos, eche la cantidad de trabajadores que trabaja en alguno de los departamentos
--de la ciudad. Dé la salida ordenada por ciudad y luego por cantidad de trabajadores.
SELECT l.city, l.state_province, COUNT(*) AS Cantidad
FROM employees e,
departments d,
locations l,
countries c,
regions r
WHERE e.department_id = d.department_id
AND d.location_id = l.location_id
AND l.country_id = c.country_id
AND c.region_id = r.region_id
GROUP BY l.city,
l.state_province
ORDER BY l.city, Cantidad asc
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar