JosepRivaille

BD - REPÀS: selects

Apr 6th, 2016
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- 1)
  2.  
  3. SELECT a.modul, AVG(a.instantFi - a.instantInici)
  4. FROM assignacions a
  5. WHERE a.instantFi IS NOT NULL
  6. GROUP BY a.modul
  7. ORDER BY a.modul ASC
  8.  
  9. -- 2)
  10.  
  11. SELECT d.NUM_DPT, d.NOM_DPT, d.CIUTAT_DPT
  12. FROM DEPARTAMENTS d
  13. WHERE 1 = (SELECT COUNT(DISTINCT e.NUM_PROJ)
  14.        FROM EMPLEATS e
  15.        WHERE e.NUM_DPT = d.NUM_DPT);
  16.  
  17. -- 3)
  18.  
  19. SELECT e.NUM_EMPL, e.NOM_EMPL
  20. FROM EMPLEATS e, DEPARTAMENTS d
  21. WHERE e.NUM_DPT = d.NUM_DPT AND e.CIUTAT_EMPL = d.CIUTAT_DPT;
  22.  
  23. -- 4)
  24.  
  25. SELECT p.dni, p.nomProf, MAX(a.InstantFi)
  26. FROM professors p, assignacions a, despatxos d
  27. WHERE p.dni = a.dni AND a.instantFi IS NOT NULL AND
  28.       a.modul = d.modul AND a.numero = d.numero AND
  29.       d.superficie > 15 AND p.sou <= (SELECT AVG(p1.sou)
  30.                       FROM professors p1)
  31. GROUP BY p.dni, p.nomProf;
  32.  
  33. -- 5)
  34.  
  35. SELECT DISTINCT p.nomProf
  36. FROM professors p
  37. WHERE (p.telefon IS NOT NULL AND p.sou > 2500) OR
  38.       (p.telefon IS NULL AND NOT EXISTS(SELECT *
  39.                                         FROM assignacions a, despatxos d
  40.                                         WHERE a.dni = p.dni AND (d.modul = a.modul AND d.numero = a.numero AND d.superficie < 20)));
  41.  
  42. -- 6)
  43.  
  44. SELECT DISTINCT d.NUM_DPT, d.NOM_DPT
  45. FROM DEPARTAMENTS d, EMPLEATS e
  46. WHERE d.NUM_DPT = e.NUM_DPT
  47. GROUP BY d.NUM_DPT, e.CIUTAT_EMPL
  48. HAVING 2 <= COUNT(*);
  49.  
  50. -- 7)
  51.  
  52. SELECT d.NUM_DPT, d.NOM_DPT
  53. FROM DEPARTAMENTS d
  54. WHERE (EXISTS(SELECT *
  55.               FROM EMPLEATS e
  56.               WHERE e.NUM_DPT = d.NUM_DPT)
  57.        AND NOT EXISTS(SELECT *
  58.                       FROM EMPLEATS e
  59.                       WHERE e.NUM_DPT = d.NUM_DPT AND e.CIUTAT_EMPL != 'MADRID'));
  60.  
  61. -- 8)
  62.  
  63. SELECT d.NUM_DPT, d.NOM_DPT
  64. FROM DEPARTAMENTS d
  65. WHERE 2 <= (SELECT COUNT(DISTINCT e.CIUTAT_EMPL)
  66.             FROM EMPLEATS e
  67.             WHERE e.NUM_DPT = d.NUM_DPT);
  68.  
  69. -- 9)
  70.  
  71. SELECT DISTINCT e.CIUTAT_EMPL
  72. FROM EMPLEATS e
  73. WHERE NOT EXISTS(SELECT *
  74.                  FROM DEPARTAMENTS d
  75.                  WHERE e.CIUTAT_EMPL = d.CIUTAT_DPT);
  76.  
  77. -- 10)
  78.  
  79. SELECT d.NUM_DPT, d.NOM_DPT
  80. FROM DEPARTAMENTS d
  81. WHERE NOT EXISTS(SELECT *
  82.                  FROM EMPLEATS e
  83.                  WHERE e.NUM_DPT = d.NUM_DPT AND e.CIUTAT_EMPL = 'MADRID');
  84.  
  85. -- 11)
  86.  
  87. SELECT p.NUM_PROJ, p.NOM_PROJ
  88. FROM PROJECTES p
  89. WHERE (2 <= (SELECT COUNT(*)
  90.              FROM EMPLEATS e
  91.              WHERE e.NUM_PROJ = p.NUM_PROJ))
  92. ORDER BY p.NUM_PROJ DESC;
  93.  
  94. -- 12)
  95.  
  96. SELECT DISTINCT e.NOM_EMPL
  97. FROM EMPLEATS e
  98. WHERE e.sou = (SELECT(MAX(d.sou)) FROM EMPLEATS d)
  99. ORDER BY e.NOM_EMPL DESC;
  100.  
  101. -- 13)
  102.  
  103. SELECT d.NUM_DPT, d.NOM_DPT, AVG(e.sou)
  104. FROM DEPARTAMENTS d, EMPLEATS e
  105. WHERE(d.ciutat_dpt = 'MADRID' AND e.NUM_DPT = d.NUM_DPT)
  106. GROUP BY(d.NUM_DPT);
  107.  
  108. -- 14)
  109.  
  110. SELECT DISTINCT d.NUM_DPT, d.NOM_DPT
  111. FROM EMPLEATS e, DEPARTAMENTS d
  112. WHERE (d.ciutat_dpt = 'MADRID' AND e.num_dpt = d.num_dpt AND e.SOU > 200000);
  113.  
  114. -- JosepRivaille
Add Comment
Please, Sign In to add comment