Advertisement
Guest User

REPÀS: selects (BD FIB)

a guest
Oct 25th, 2016
1,571
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.93 KB | None | 0 0
  1. Qüestió 1 (10%)
  2.  
  3. Donar una sentència SQL per obtenir per cada mòdul on hi hagi despatxos, la durada mitjana de les assignacions finalitzades (instantFi diferent de null) a despatxos del mòdul. El resultat ha d'estar ordenat ascendentment pel nom del mòdul.
  4.  
  5. Pel joc de proves que trobareu al fitxer adjunt, la sortida ha de ser:
  6.  
  7. MODUL MITJANA_DURADA
  8. Omega 235.00
  9.  
  10. SELECT a.modul, AVG(a.instantFi - a.instantInici) AS MITJANA_DURADA
  11. FROM assignacions a, despatxos d
  12. GROUP BY a.modul
  13. HAVING COUNT(a.instantFi IS NOT NULL) >= 2
  14. ORDER BY a.modul ASC
  15.  
  16.  
  17.  
  18.  
  19. Qüestió 2 (10%)
  20.  
  21. Doneu una sentència SQL per obtenir els departaments tals que tots els empleats del departament estan assignats a un mateix projecte.
  22. No es vol que surtin a la consulta els departaments que no tenen cap empleat.
  23. Es vol el número, nom i ciutat de cada departament.
  24. El resultat ha d'estar ordenat ascendentment per cadascun dels atributs anteriors.
  25.  
  26. Pel joc de proves que trobareu al fitxer adjunt, la sortida seria:
  27.  
  28. Num_dpt Nom_dpt Ciutat_dpt
  29. 1 DIRECCIO BARCELONA
  30.  
  31. SELECT d.Num_dpt, d.Nom_dpt, d.Ciutat_dpt
  32. FROM Departaments d NATURAL JOIN Empleats e
  33. WHERE 2 > (SELECT COUNT (DISTINCT e.Num_proj)
  34. FROM Empleats e, Projectes p
  35. WHERE p.Num_proj = e.Num_proj AND e.num_dpt = d.num_dpt)
  36. ORDER BY d.Num_dpt, d.Nom_dpt, d.Ciutat_dpt ASC
  37.  
  38.  
  39.  
  40. Qüestió 3 (10%)
  41.  
  42. Doneu una sentència SQL per obtenir el número i el nom dels empleats que viuen a la mateixa ciutat on està situat el departament on treballen
  43.  
  44. Pel joc de proves que trobareu al fitxer adjunt, la sortida seria:
  45.  
  46. num_empl nom_empl
  47. 3 ROBERTO
  48.  
  49. SELECT e.Num_empl, e.Nom_empl
  50. FROM Empleats e, Departaments d
  51. WHERE e.ciutat_empl = d.ciutat_dpt AND e.num_dpt = d.num_dpt
  52.  
  53.  
  54.  
  55. Qüestió 4 (10%)
  56.  
  57. Donar una sentència SQL per obtenir els professors que tenen alguna assignació finalitzada (instantFi diferent de null) a un despatx amb superfície superior a 15 i que cobren un sou inferior o igual a la mitjana del sou de tots els professors. En el resultat de la consulta ha de sortir el dni del professor, el nom del professor, i el darrer instant en què el professor ha estat assignat a un despatx amb superfície superior a 15.
  58.  
  59. Pel joc de proves que trobareu al fitxer adjunt, la sortida ha de ser:
  60.  
  61. DNI NomProf Darrer_instant
  62. 111 toni 344
  63.  
  64. SELECT DISTINCT p.dni, p.NomProf, a.instantFi AS Darrer_instant
  65. FROM professors p NATURAL JOIN despatxos d NATURAL JOIN assignacions a
  66. WHERE (a.instantFi IS NOT NULL AND
  67. d.superficie > 15 AND
  68. p.sou <= (SELECT AVG(p.sou)
  69. FROM professors p))
  70.  
  71.  
  72.  
  73.  
  74.  
  75. Qüestió 5 (10%)
  76.  
  77. Doneu una sentència SQL per obtenir el nom dels professors que o bé se sap el seu número de telèfon (valor diferent de null) i tenen un sou superior a 2500, o bé no se sap el seu número de telèfon (valor null) i no tenen cap assignació a un despatx amb superfície inferior a 20.
  78.  
  79. Pel joc de proves que trobareu al fitxer adjunt, la sortida seria:
  80.  
  81. NomProf
  82. toni
  83.  
  84. -->> NI ZORRA
  85.  
  86.  
  87.  
  88. Qüestió 6 (10%)
  89.  
  90. Doneu una sentència SQL per obtenir el número i nom dels departaments que tenen 2 o més empleats que viuen a la mateixa ciutat.
  91.  
  92. Pel joc de proves que trobareu al fitxer adjunt, la sortida seria:
  93.  
  94. NUM_DPT NOM_DPT
  95. 3 MARKETING
  96.  
  97. SELECT DISTINCT d.Num_dpt, d.Nom_dpt
  98. FROM Departaments d NATURAL INNER JOIN Empleats e
  99. GROUP BY e.ciutat_empl, d.num_dpt
  100. HAVING 2 <= COUNT(*)
  101.  
  102.  
  103.  
  104.  
  105. Qüestió 7 (5%)
  106.  
  107. Doneu una sentència SQL per obtenir el número i nom dels departaments tals que tots els seus empleats viuen a MADRID. El resultat no ha d'incloure aquells departaments que no tenen cap empleat.
  108.  
  109. Pel joc de proves que trobareu al fitxer adjunt, la sortida seria:
  110.  
  111. Num_dpt Nom_dpt
  112. 3 MARKETING
  113.  
  114. SELECT d.num_dpt, d.nom_dpt
  115. FROM Departaments d NATURAL INNER JOIN Empleats e
  116. WHERE d.num_dpt NOT IN (SELECT d1.num_dpt
  117. FROM departaments d1
  118. WHERE d1.num_dpt = d.num_dpt AND e.ciutat_empl <> 'MADRID' AND e.num_dpt = d1.num_dpt)
  119.  
  120. GROUP BY num_dpt
  121.  
  122.  
  123.  
  124. Qüestió 8 (5%)
  125.  
  126. Doneu una sentència SQL per obtenir el número i nom dels departaments que tenen dos o més empleats que viuen a ciutats diferents.
  127.  
  128. Pel joc de proves que trobareu al fitxer adjunt, la sortida seria:
  129.  
  130. NUM_DPT NOM_DPT
  131. 3 MARKETING
  132.  
  133. SELECT d.num_dpt, d.nom_dpt
  134. FROM Departaments d NATURAL INNER JOIN Empleats e
  135. GROUP BY d.num_dpt
  136. HAVING COUNT (DISTINCT e.ciutat_empl) >= 2
  137.  
  138.  
  139.  
  140. Qüestió 9 (5%)
  141.  
  142. Doneu una sentència SQL per obtenir les ciutats on hi viuen empleats però no hi ha cap departament.
  143.  
  144. Pel joc de proves que trobareu al fitxer adjunt, la sortida seria:
  145.  
  146. CIUTAT_EMPL
  147. GIRONA
  148.  
  149. SELECT DISTINCT e.Ciutat_empl
  150. FROM Empleats e
  151. WHERE e.Ciutat_empl NOT IN (SELECT d.ciutat_dpt
  152. FROM Departaments d)
  153.  
  154.  
  155.  
  156. Qüestió 10 (5%)
  157.  
  158. Doneu una sentència SQL per obtenir el número i el nom dels departaments que no tenen cap empleat que visqui a MADRID.
  159.  
  160. Pel joc de proves que trobareu al fitxer adjunt, la sortida seria:
  161.  
  162. NUM_DPT NOM_DPT
  163. 3 MARKETING
  164.  
  165. SELECT d.num_dpt, d.nom_dpt
  166. FROM departaments d
  167. WHERE NOT EXISTS (SELECT e.ciutat_empl
  168. FROM empleats e
  169. WHERE e.ciutat_empl = 'MADRID' AND e.num_dpt = d.num_dpt)
  170.  
  171.  
  172.  
  173.  
  174. Qüestió 11 (5%)
  175.  
  176. Doneu una sentència SQL per obtenir els números i els noms dels projectes que tenen assignats dos o més empleats.
  177. Cal ordenar el resultat descendement per número de projecte.
  178.  
  179. Pel joc de proves que trobareu al fitxer adjunt, la sortida seria:
  180.  
  181. NUM_PROJ NOM_PROJ
  182. 1 IBDTEL
  183.  
  184. SELECT p.num_proj, p.nom_proj
  185. FROM empleats e NATURAL INNER JOIN projectes p
  186. GROUP BY p.num_proj
  187. HAVING COUNT(*) >= 2
  188. ORDER BY p.num_proj DESC
  189.  
  190.  
  191.  
  192.  
  193. Qüestió 12 (5%)
  194.  
  195. Doneu una sentència SQL per obtenir el nom dels empleats que guanyen el sou més alt. Cal ordenar el resultat descendenment per nom de l'empleat.
  196.  
  197. Pel joc de proves que trobareu al fitxer adjunt, la sortida seria:
  198.  
  199. NOM_EMPL
  200. JOAN
  201.  
  202. SELECT DISTINCT e.nom_empl
  203. FROM empleats e
  204. WHERE e.sou >= (SELECT MAX(sou)
  205. FROM empleats)
  206.  
  207.  
  208.  
  209.  
  210. Qüestió 13 (5%)
  211.  
  212. Obtenir per cada departament situat a MADRID la mitjana dels sous dels seus empleats. Concretament, cal donar el número de departament, el nom de departament i la mitjana del sou.
  213.  
  214. Pel joc de proves que trobareu al fitxer adjunt, la sortida ha de ser:
  215.  
  216. NUM_DPT NOM_DPT SOU
  217. 5 VENDES 250000.00
  218.  
  219. SELECT d.num_dpt, d.nom_dpt, AVG(e.sou) AS SOU
  220. FROM empleats e NATURAL INNER JOIN departaments d
  221. WHERE d.ciutat_dpt = 'MADRID'
  222. GROUP BY d.num_dpt
  223.  
  224.  
  225.  
  226.  
  227. Qüestió 14 (5%)
  228.  
  229. Doneu una sentència SQL per obtenir els números i els noms dels departament situats a MADRID, que tenen empleats que guanyen més de 200000.
  230. Pel joc de proves que trobareu al fitxer adjunt, la sortida ha de ser:
  231.  
  232. NUM_DPT NOM_DPT
  233. 5 VENDES
  234.  
  235. SELECT DISTINCT d.num_dpt, d.nom_dpt
  236. FROM departaments d NATURAL INNER JOIN empleats e
  237. WHERE d.ciutat_dpt = 'MADRID' AND e.sou >= 200000
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement