Ruiz Nieves Sara BD04 Tarea PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 13

BASES DE DATOS

Tarea de BD04

Sara Ruiz Nieves


BD04 Sara Ruiz Nieves

Todo está listo para que le ayudes. Estas son las consultas que debes crear:

1. Código y nombre de todos los departamentos.

SELECT CODIGO,NOMBRE FROM DEPARTAMENTOS;

2. Mes y ejercicio de los justificantes de nómina pertenecientes al empleado cuyo código es 1.

SELECT MES,EJERCICIO FROM JUST_NOMINAS WHERE COD_EMP=’1’;

3. Número de cuenta y nombre de los empleados cuya retención es mayor o igual que 10.

SELECT CUENTA,NOMBRE FROM EMPLEADOS WHERE RETENCION>=’10’;


BD04 Sara Ruiz Nieves

4. Código y nombre de los empleados ordenados ascendentemente por nombre.

SELECT CODIGO,NOMBRE FROM EMPLEADOS ORDER BY NOMBRE;

5. Nombre de los empleados que tienen más de 2 hijos.

SELECT NOMBRE FROM EMPLEADOS WHERE HIJOS>’2’;

6. Código y número de cuenta de los empleados cuyo nombre empiece por 'A' o por 'J'.

SELECT CODIGO,CUENTA FROM EMPLEADOS WHERE NOMBRE LIKE ‘A%’ OR NOMBRE LIKE ‘J%’;
BD04 Sara Ruiz Nieves

7. Número de empleados que hay en la base de datos.

SELECT COUNT(NOMBRE) FROM EMPLEADOS;

8. Nombre del primer y último empleado en términos alfabéticos.

SELECT MIN(NOMBRE,MAX(NOMBRE) FROM EMPLEADOS;

9. Nombre y número de hijos de los empleados cuya retención es: 8, 10 o 12.

SELECT NOMBRE,HIJOS FROM EMPLEADOS WHERE RETENCION=’8’ OR RETENCION=’10’ OR RETENCION=’12’


ORDER BY HIJOS;

10. Número de hijos y número de empleados agrupados por hijos, mostrando sólo los grupos cuyo número de
empleados sea mayor que 1.

SELECT HIJOS,COUNT(NOMBRE) FROM EMPLEADOS GROUP BY HIJOS HAVING COUNT(NOMBRE)>1 ORDER BY


HIJOS;
BD04 Sara Ruiz Nieves

11. Número de hijos, retención máxima, mínima y media de los empleados agrupados por hijos.

SELECT HIJOS,MAX(RETENCION),MIN(RETENCION),AVG(RETENCION) FROM EMPLEADOS GROUP BY HIJOS ORDER


BY HIJOS;

12. Nombre y función de los empleados que han trabajado en el departamento 1.

SELECT E.NOMBRE,T.FUNCION FROM EMPLEADOS E JOIN TRABAJAN T ON E.CODIGO=T.COD_EMP WHERE


T.COD_DEP='1';

13. Nombre del empleado, nombre del departamento y función que han realizado de los empleados que tienen
1 hijo.

SELECT E.NOMBRE,D.NOMBRE AS DEPARTAMENTO,T.FUNCION FROM EMPLEADOS E JOIN TRABAJAN T ON


E.CODIGO=T.COD_EMP JOIN DEPARTAMENTOS D ON T.COD_DEP=D.CODIGO WHERE E.HIJOS='1';
BD04 Sara Ruiz Nieves

14. Nombre del empleado y nombre del departamento en el que han trabajado empleados que no tienen hijos.

SELECT E.NOMBRE,D.NOMBRE FROM EMPLEADOS E JOIN TRABAJAN T ON E.CODIGO=T.COD_EMP JOIN


DEPARTAMENTOS D ON T.COD_DEP=D.CODIGO WHERE E.HIJOS='0';

15. Nombre del empleado, mes y ejercicio de sus justificantes de nómina, número de línea y cantidad de las
líneas de los justificantes para el empleado cuyo código=1.

SELECT E.NOMBRE,L.MES,L.EJERCICIO,L.NUMERO,L.CANTIDAD FROM EMPLEADOS E JOIN LINEAS L ON


L.COD_EMP=E.CODIGO WHERE L.COD_EMP='1';

16. Nombre del empleado, mes y ejercicio de sus justificantes de nómina para los empleados que han trabajado
en el departamento de Ventas.

SELECT E.NOMBRE,JN.MES,JN.EJERCICIO FROM EMPLEADOS E JOIN JUST_NOMINAS JN ON


JN.COD_EMP=E.CODIGO JOIN TRABAJAN T ON T.COD_EMP=JN.COD_EMP JOIN DEPARTAMENTOS D ON
D.CODIGO=T.COD_DEP WHERE D.NOMBRE='Ventas';
BD04 Sara Ruiz Nieves

17. Nombre del empleado e ingresos totales percibidos agrupados por nombre.

SELECT E.NOMBRE,SUM(JN.INGRESO) AS TOTAL_INGRESOS FROM EMPLEADOS E JOIN JUST_NOMINAS JN ON


E.CODIGO=JN.COD_EMP GROUP BY NOMBRE;

18. Nombre de los empleados que han ganado más de 2000 € en el año 2006.

SELECT E.NOMBRE,SUM(JN.INGRESO) AS INGRESOS_2006 FROM EMPLEADOS E JOIN JUST_NOMINAS JN ON


E.CODIGO=JN.COD_EMP WHERE JN.EJERCICIO='2006' GROUP BY E.NOMBRE;

19. Número de empleados cuyo número de hijos es superior a la media de hijos de los empleados.

SELECT COUNT(NOMBRE) FROM EMPLEADOS WHERE HIJOS>(SELECT AVG(HIJOS) FROM EMPLEADOS);


BD04 Sara Ruiz Nieves

20. Nombre de los empleados que más hijos tienen o que menos hijos tienen.

SELECT NOMBRE FROM EMPLEADOS WHERE HIJOS=(SELECT MAX(HIJOS) FROM EMPLEADOS) OR HIJOS=(SELECT
MIN(HIJOS) FROM EMPLEADOS);

21. Nombre de los empleados que no tienen justificante de nóminas.

SELECT E.NOMBRE FROM EMPLEADOS E FULL OUTER JOIN JUST_NOMINAS JN ON E.CODIGO=JN.COD_EMP WHERE
JN.COD_EMP IS NULL;

22. Nombre y fecha de nacimiento de todos los empleados.

SELECT NOMBRE,FNACIMIENTO FROM EMPLEADOS;


BD04 Sara Ruiz Nieves

23. Nombre y fecha de nacimiento con formato "1 de Enero de 2000" y etiquetada la columna como fecha, de
todos los empleados.

SELECT NOMBRE,TO_CHAR(FNACIMIENTO, 'DD" DE "MONTH" DE "YYYY') AS FECHA FROM EMPLEADOS;

24. Nombre de los empleados, nombre de los departamentos en los que ha trabajado y función en mayúsculas
que ha realizado en cada departamento.

SELECT E.NOMBRE,D.NOMBRE,UPPER(T.FUNCION) AS FUNCION FROM EMPLEADOS E JOIN TRABAJAN T ON


E.CODIGO=T.COD_EMP JOIN DEPARTAMENTOS D ON D.CODIGO=T.COD_DEP ORDER BY E.NOMBRE;
BD04 Sara Ruiz Nieves
BD04 Sara Ruiz Nieves

25. Nombre, fecha de nacimiento y nombre del día de la semana de su fecha de nacimiento de todos los
empleados.

SELECT NOMBRE,FNACIMIENTO,TO_CHAR(FNACIMIENTO, 'DAY') AS DIA_SEMANA FROM EMPLEADOS;

26. Nombre y edad de los empleados.

SELECT NOMBRE,TRUNC(TO_CHAR((SYSDATE-FNACIMIENTO)/365)) AS EDAD FROM EMPLEADOS;


BD04 Sara Ruiz Nieves

27. Nombre, edad y número de hijos de los empleados que tienen menos de 40 años y tienen hijos.

SELECT NOMBRE,TRUNC(TO_CHAR((SYSDATE-FNACIMIENTO)/365)) AS EDAD,HIJOS FROM EMPLEADOS WHERE


HIJOS>0 AND TRUNC(TO_CHAR((SYSDATE-FNACIMIENTO)/365))<50;
*He cambiado a 50 el valor de la Edad para que aparezca algún registro.

28. Nombre, edad de los empleados y nombre del departamento de los empleados que han trabajado en más de
un departamento.

SELECT E.NOMBRE,TRUNC(TO_CHAR((SYSDATE-FNACIMIENTO)/365)) AS EDAD,D.NOMBRE AS DEPARTAMENTO


FROM EMPLEADOS E JOIN TRABAJAN T ON E.CODIGO=T.COD_EMP JOIN DEPARTAMENTOS D ON
D.CODIGO=T.COD_DEP WHERE E.CODIGO IN (SELECT COD_EMP FROM TRABAJAN GROUP BY COD_EMP HAVING
COUNT(COD_DEP)>1);
BD04 Sara Ruiz Nieves

29. Nombre, edad y número de cuenta de aquellos empleados cuya edad es múltiplo de 3.

SELECT NOMBRE,TRUNC(TO_CHAR((SYSDATE-FNACIMIENTO)/365)) AS EDAD,CUENTA FROM EMPLEADOS WHERE


MOD(TRUNC(TO_CHAR((SYSDATE-FNACIMIENTO)/365)),3)=0;

30. Nombre e ingresos percibidos empleado más joven y del más longevo.

SELECT E.NOMBRE, SUM(JN.INGRESO) AS INGRESOS FROM EMPLEADOS E JOIN JUST_NOMINAS JN ON


JN.COD_EMP=E.CODIGO WHERE E.FNACIMIENTO <= ALL (SELECT FNACIMIENTO FROM EMPLEADOS) GROUP BY
E.NOMBRE UNION SELECT E.NOMBRE, SUM(JN.INGRESO) AS INGRESOS FROM EMPLEADOS E JOIN JUST_NOMINAS
JN ON JN.COD_EMP=E.CODIGO WHERE E.FNACIMIENTO >= ALL (SELECT FNACIMIENTO FROM EMPLEADOS) GROUP
BY E.NOMBRE;

También podría gustarte