GreysitoErPutoAmo

Examen BBDD - SQL

Mar 23rd, 2015
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.23 KB | None | 0 0
  1.          
  2. --1
  3. SELECT APELLIDO, SALARIO, DEPT_NO
  4. FROM EMPLE
  5. WHERE EMP_NO IN (SELECT DIR
  6.                  FROM EMPLE) AND SALARIO>169000 ORDER BY APELLIDO DESC;
  7. --2
  8. SELECT APELLIDO, OFICIO, SALARIO, DEPT_NO
  9. FROM EMPLE
  10. WHERE DEPT_NO IN (SELECT DEPT_NO FROM EMPLE WHERE APELLIDO='GIL')
  11. AND OFICIO IN (SELECT OFICIO FROM EMPLE WHERE APELLIDO='GIL')
  12. AND APELLIDO!='GIL';
  13. --3
  14. SELECT APELLIDO, OFICIO, SALARIO, DEPT_NO
  15. FROM EMPLE
  16. WHERE FECHA_ALT BETWEEN '01/01/1981' AND '31/12/1981'
  17. AND SALARIO IN (SELECT MAX(SALARIO) FROM EMPLE E, DEPART D WHERE E.DEPT_NO=D.DEPT_NO GROUP BY E.OFICIO);
  18. --4 corregir
  19. SELECT APELLIDO, OFICIO, SALARIO, DEPT_NO FROM EMPLE WHERE SALARIO> ANY(SELECT AVG(SALARIO) FROM EMPLE GROUP BY DEPT_NO);
  20. --5
  21. /*SELECT APELLIDO "<apellido_jefe>" FROM EMPLE WHERE EMP_NO IN (SELECT DIR FROM EMPLE);
  22. SELECT APELLIDO FROM EMPLE WHERE EMP_NO NOT IN (SELECT NVL(DIR,0) FROM EMPLE);*/
  23.  
  24. SELECT DISTINCT A.APELLIDO "<apellido_jefe>", 'trabaja para', B.APELLIDO "<apellido_emple>" FROM EMPLE A, EMPLE B WHERE A.EMP_NO=B.DIR;
  25.  
  26. -6
  27. --A)
  28. SELECT NOMBRE FROM ASIGNATURAS
  29. WHERE COD IN (SELECT COD FROM NOTAS)
  30. AND COD NOT IN (SELECT COD FROM NOTAS WHERE  NOTA>=5) ORDER BY NOMBRE;
  31. --B)
  32. SELECT NOMBRE
  33. FROM ASIGNATURAS S, NOTAS N, ALUMNOS U
  34. WHERE S.cod=n.cod AND U.DNI=N.DNI AND NOTA<5
  35. GROUP BY NOMBRE;
  36.  
  37. --7
  38.  
  39. --A)
  40. SELECT LAST_NAME
  41. FROM EMPLOYEES
  42. WHERE department_id IN (SELECT DEPARTMENT_ID
  43.                      FROM departments
  44.                      WHERE LOCATION_ID IN (SELECT LOCATION_ID
  45.                                         FROM locations
  46.                                         WHERE CITY='Seattle'));
  47. --B)
  48. SELECT LAST_NAME
  49. FROM EMPLOYEES E, LOCATIONS L, DEPARTMENTS D
  50. WHERE D.location_id=l.location_id AND D.department_id=e.department_id AND CITY='Seattle';
  51. --C)
  52. SELECT LAST_NAME
  53. FROM EMPLOYEES E, DEPARTMENTS D
  54. WHERE D.department_id=e.department_id AND d.location_id=(SELECT location_id
  55.                                                          FROM LOCATIONS
  56.                                                          WHERE CITY='Seattle');
  57. --8
  58. UPDATE EMPLE (SALARIO, COMISION)
  59. SET SALARIO = (SELECT NVL(MIN(SALARIO),0)
  60.                 FROM EMPLE
  61.                 GROUP BY DEPT_NO), COMISION = (SELECT (MAX(COMISION)/2)
  62.                                                 FROM EMPLE)
  63.                                                 WHERE SALARIO> (SELECT NVL(AVG(SALARIO),0)
  64.                                                                FROM EMPLE GROUP BY DEPT_NO);
  65.                                                                
  66. --9
  67.  
  68. INSERT INTO EMPLE SELECT DISTINCT 9999, 'DIAZ', 'ANALISTA', 7566,
  69. '03/03/2013', 2000, 120, DEPT_NO
  70. FROM EMPLE WHERE DEPT_NO= (SELECT DEPT_NO FROM EMPLE GROUP BY DEPT_NO
  71. HAVING COUNT(*)= (SELECT MIN(COUNT(*)) FROM EMPLE GROUP BY DEPT_NO));
  72.  
  73. --10          
  74.  
  75.   DELETE FROM EMPLE
  76.        WHERE DEPT_NO=(SELECT DEPT_NO
  77.                       FROM EMPLE
  78.                       WHERE SALARIO=(SELECT MAX(AVG(SALARIO))
  79.                                      FROM EMPLE GROUP BY DEPT_NO));
Add Comment
Please, Sign In to add comment