0% encontró este documento útil (0 votos)
33 vistas5 páginas

Consultas SQL para gestión de empleados y proyectos

Cargado por

xaniga4473
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
33 vistas5 páginas

Consultas SQL para gestión de empleados y proyectos

Cargado por

xaniga4473
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

EJERCICIO 1: Dada la siguiente estructura, realizar las consultas abajo

detalladas.

1. Obtener todos los datos de los empleados que se apellidan López y los que se apellidan
Pérez.

SELECT *
FROM empleados
WHERE apellidos IN ('López' , 'Pérez');

2. Obtener todos los datos de los empleados que trabajan para el departamento 37 y para el
departamento 77.

SELECT *
FROM empleados
WHERE codigo IN (37, 77);

3. Obtener todos los datos de los empleados cuyo apellido comience por P.

SELECT *
FROM empleados
WHERE apellidos LIKE 'P%';

4. Obtener el presupuesto total de todos los departamentos.

SELECT SUM(presupuesto)
FROM departamentos;

-- Si queremos el presupuesto de juntar todos los departamentos

SELECT presupuesto, nombre


FROM departamentos;
-- Si queremos el presupuesto de cada departamento por separado.
5. Obtener el número de empleados en cada departamento.

SELECT COUNT(*) AS NumeroEmpleados, departamentos


FROM empleados
GROUP BY departamentos;

6. Obtener un listado completo de empleados, incluyendo el nombre y apellidos del empleado,


junto al nombre y presupuesto de su departamento.

SELECT dni, [Link], apellidos, codigo, [Link], presupuesto


FROM empleados e
JOIN departamentos d
ON codigo = departamentos;

7. Obtener los nombre y apellidos de los empleados que trabajen en departamentos, cuyo
presupuesto sea mayor de 60.000€.

SELECT [Link], apellidos


FROM empleados e
JOIN departamentos d
ON codigo = departamentos
WHERE presupuesto > 60000;

8. Obtener los datos de los departamentos cuyo presupuesto es superior al presupuesto medio
de todos los departamentos.

SELECT codigo, presupuesto


FROM departamentos
GROUP BY codigo, presupuesto
HAVING presupuesto > (SELECT AVG(presupuesto) FROM departamentos);

9. Obtener los nombres (únicamente los nombres) de los departamentos que tienen más de dos
empleados

SELECT [Link]
FROM departamentos d
JOIN empleados e
ON codigo = departamentos
GROUP BY departamentos
HAVING COUNT(*) > 2;
EJERCICIO 2: Dada la siguiente estructura, realizar las consultas abajo
detalladas.

1. Obtener el valor medio de las cajas de cada almacén.


SELECT AVG(valor), almacen
FROM cajas
GROUP BY almacen;

2. Obtener los códigos de los almacenes en los cuales el valor medio de las cajas sea superior a
150€.

SELECT almacen
FROM cajas
GROUP BY almacen
HAVING AVG(valor) > 150;

3. Obtener el número de referencia de cada caja junto con el nombre de la ciudad en el que se
encuentra.

SELECT [Link], [Link]


FROM cajas c
JOIN almacenes a
ON [Link] = [Link];

4. Obtener los códigos de los almacenes que están saturados (los almacenes donde el número
de cajas es superior a la capacidad).

SELECT [Link]
FROM almacenes a
JOIN cajas c
ON [Link] = [Link]
GROUP BY [Link], [Link]
HAVING COUNT([Link]) > [Link];
EJERCICIO 3: Dada la siguiente estructura, realizar las consultas abajo
detalladas.

1. Obtener el precio medio al que se nos suministran las piezas.


SELECT AVG(precio), codigoPieza
FROM suministra
GROUP BY codigoPieza;

2. Obtener los nombre de los proveedores que suministran la pieza 1.

SELECT [Link]
FROM suministra s
JOIN proveedores pro
ON [Link] = [Link]
JOIN piezas p
ON [Link] = [Link]
WHERE [Link] = 1;

3. Obtener los nombre de los proveedores que suministran las piezas más caras, indicando el
nombre de la pieza y el precio al que la suministran.

SELECT [Link], [Link]


FROM suministra sum
JOIN proveedores pro
ON [Link] = [Link]
WHERE precio = (SELECT MAX(precio) FROM suministra);

4. Obtener los nombre de la piezas suministradas por el proveedor cuyo código es HAL.

SELECT [Link]
FROM suministra sum
JOIN proveedores pro
ON [Link] = [Link]
JOIN piezas p
ON [Link] = [Link]
WHERE id = 'HAL';
EJERCICIO 4: Dada la siguiente estructura, realizar las consultas abajo
detalladas.

1. Obtener una relación completa de los científicos asignados a cada proyecto. Mostrar DNI,
nombre del científico, identificador del proyecto y nombre del proyecto.

SELECT [Link], [Link], [Link], [Link]


FROM cientificos c
JOIN asignado_a a
ON [Link] = [Link]
JOIN proyecto p
ON [Link] = [Link];

2. Obtener el número de proyectos (mayor que 0) al que está asignado cada científico (mostrar
el DNI y el nombre).

SELECT [Link], [Link], COUNT([Link])


FROM cientificos c
JOIN asignado_a a
ON [Link] = [Link]
JOIN proyecto p
ON [Link] = [Link]
GROUP BY dni, proyecto
HAVING COUNT(proyecto) > 0;

3. Obtener el DNI y nombre de los científicos que se dedican a más de un proyecto y cuya
dedicación media a cada proyecto sea superior a las 80 horas.

SELECT [Link], [Link]


FROM cientificos c
JOIN asignado_a a ON [Link] = [Link]
JOIN (
SELECT proyecto, AVG(horas) AS avgHoras
FROM proyecto
GROUP BY proyecto
HAVING AVG(horas) > 80
) AS avg_proyectos
ON [Link] = avg_proyectos.proyecto
GROUP BY [Link], [Link]
HAVING COUNT([Link]) > 1;

También podría gustarte