Advertisement
AmbarG

parte2TP4

Oct 2nd, 2024
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --Consultas Resumen
  2. --12. Muestre todos los campos de zona y equipo en una sola consulta relacionada. Realice una
  3. --segunda consulta donde no se presente repetición de campos.
  4. -- en esta primera consulta me muestra todo incluso campos repetidos.
  5. select * from zona inner join equipo
  6. on zona.codigo_zona=equipo.codigo_zona;
  7. -- en la segunda como me esta pidiendo que no se repiten queda asi:
  8. select zona.codigo_zona as cod_zona,
  9.     zona.nombre_zona,
  10.     equipo.codigo_equipo,
  11.     equipo.nombre_equipo,
  12.     equipo.id_deporte,
  13.     equipo.categoria
  14. from zona inner join equipo
  15. on zona.codigo_zona = equipo.codigo_zona;
  16. -- es decir que necesitamos un alias para renombrar el campo de codigo zona y que cuando lo relacione no chocque con la tabla2,
  17. -- entonces lo renombro a cod_zona pero solo utilizo en una sola tabla el codigo zona. Luego menciono los demas campos
  18. -- y ya quedaria.
  19. ++++++
  20. --13. Muestre todos los campos de zona, equipo y campeonato en una sola consulta
  21. --relacionada. En el resultado de la consulta no deben existir campos repetidos.
  22. select zona.codigo_zona as cod_zona,
  23.     zona.nombre_zona,
  24.     equipo.codigo_equipo as cod_equipo,
  25.     equipo.nombre_equipo,
  26.     equipo.id_deporte,
  27.     equipo.categoria,
  28.     campeonato.codigo_ciudad,
  29.     campeonato.fecha,
  30.     campeonato.entradas_vendidas,
  31.     campeonato.precio_entrada
  32. from zona
  33. inner join equipo on zona.codigo_zona = equipo.codigo_zona
  34. inner join campeonato on equipo.codigo_equipo = campeonato.codigo_equipo;
  35. --cuando tengo 3 tablas, debo poner alias a las 2 primeras tablas para no confundir al relacionar el campo del codigo, y
  36. --utilizo 2 inner join para relacionar.
  37. +++++++
  38. --14. Muestre el “codigo_zona” y el “codigo_ ciudad” con fecha 07/03/2023.
  39. select zona.codigo_zona, campeonato.codigo_ciudad, campeonato.fecha
  40. from zona
  41. inner join equipo on zona.codigo_zona = equipo.codigo_zona
  42. inner join campeonato on  equipo.codigo_equipo = campeonato.codigo_equipo
  43. where campeonato.fecha  = '07-03-2023';
  44. -- selecciono los campos a mostrar, y parto desde zona, y relaciono las tablas. Con la condicion de where nombre de la tabla
  45. --punto el campo y el = que es la condicion.
  46.  
  47. --15. Utilizando subconsulta muestre el ”nombre_deporte” de los equipos con categoría “B”.
  48. select * from equipo;
  49. select deporte.nombre_deporte, equipo.categoria, equipo.nombre_equipo
  50. from deporte
  51. inner join equipo on deporte.id_deporte = equipo.id_deporte
  52. where equipo.categoria = 'b';
  53.  
  54. --16. Utilizando subconsulta muestre los registros de la tabla campeonato correspondiente a la
  55. --ciudad de “Ledesma”.
  56. select * from campeonato;
  57. select campeonato.codigo_equipo,
  58.         campeonato.codigo_ciudad,
  59.         campeonato.fecha,
  60.         campeonato.entradas_vendidas,
  61.         campeonato.precio_entrada,
  62.         ciudad.nombre_ciudad
  63. from campeonato
  64. inner join ciudad on campeonato.codigo_ciudad = ciudad.codigo_ciudad
  65. where ciudad.nombre_ciudad = 'ledesma';
  66.  
  67. --17. Utilizando subconsulta muestre los registros de la tabla campeonato correspondiente a la “ZonaB”
  68. select campeonato.codigo_equipo,
  69.         campeonato.codigo_ciudad,
  70.         campeonato.fecha,
  71.         campeonato.entradas_vendidas,
  72.         campeonato.precio_entrada,
  73.         zona.nombre_zona
  74. from zona
  75. inner join equipo on zona.codigo_zona = equipo.codigo_zona
  76. inner join campeonato on equipo.codigo_equipo = campeonato.codigo_equipo
  77. where zona.nombre_zona = 'zonaB';
  78.  
  79. --18. Utilizando subconsulta muestre el “codigo_equipo” y “nombre_equipo” para el deporte
  80. --“Voley” correspondiente a la “ZonaA”
  81. select equipo.codigo_equipo,
  82.         equipo.nombre_equipo,
  83.         deporte.nombre_deporte,
  84.         zona.nombre_zona
  85. from zona
  86. inner join equipo on zona.codigo_zona = equipo.codigo_zona
  87. inner join deporte on equipo.id_deporte = deporte.id_deporte
  88. where zona.nombre_zona = 'zonaA' and deporte.nombre_deporte = 'voley';
  89.  
  90. --19. Realice una vista denominada “v_campeonato” que muestre los datos relacionados de
  91. --equipo y ciudad.
  92.  
  93. create view v_campeonato as
  94. select equipo.codigo_equipo,
  95.         equipo.nombre_equipo,
  96.         equipo.codigo_zona,
  97.         equipo.id_deporte,
  98.         equipo.categoria,
  99.         ciudad.codigo_ciudad,
  100.         ciudad.nombre_ciudad,
  101.         ciudad.id_region,
  102.         ciudad.cp
  103. from campeonato
  104. join equipo on campeonato.codigo_equipo = equipo.codigo_equipo
  105. join ciudad on campeonato.codigo_ciudad = ciudad.codigo_ciudad;
  106.  
  107. select * from v_campeonato;
  108. --ahora si no quiero repetir utilizo distinc
  109.  
  110. create view v_campeonatos as
  111. select distinct  equipo.codigo_equipo,
  112.         equipo.nombre_equipo,
  113.         equipo.codigo_zona,
  114.         equipo.id_deporte,
  115.         equipo.categoria,
  116.         ciudad.codigo_ciudad,
  117.         ciudad.nombre_ciudad,
  118.         ciudad.id_region,
  119.         ciudad.cp
  120. from campeonato
  121. join equipo on campeonato.codigo_equipo = equipo.codigo_equipo
  122. join ciudad on campeonato.codigo_ciudad = ciudad.codigo_ciudad;
  123. select * from v_campeonatos;
  124.  
  125. --20. Cree una vista denominada “v_equipo” que muestre los datos de zona y deporte.
  126. create view v_equipo as
  127. select zona.codigo_zona,
  128.         zona.nombre_zona,
  129.         deporte.nombre_deporte,
  130.         deporte.id_deporte
  131. from equipo
  132. join zona on equipo.codigo_zona= zona.codigo_zona
  133. join deporte on equipo.id_deporte = deporte.id_deporte;
  134.  
  135. select * from v_equipo;
  136. -- 21. Muestre el número de registros que contiene la tabla campeonato.
  137. select count(*) as numero_registros
  138. from campeonato;
  139.  
  140. --22. Muestre la cantidad máxima de entradas vendidas
  141. select max(entradas_vendidas) as cantidadMaxima_entradasVendidas
  142. from campeonato;
  143.  
  144. --23. Muestre el promedio de las entradas vendidas.
  145. select round(avg(entradas_vendidas),2) as promedio_entradasVendidas
  146. from campeonato;
  147.  
  148.  
  149. --24. Muestre el importe total (Entradas Vendidas * Precio Entrada) de entradas vendidas en
  150. --todo el campeonato
  151. select sum(entradas_vendidas*precio_entrada) as importe_total
  152. from campeonato;
  153.  
  154. --25. Muestre el importe total (Entradas Vendidas * Precio Entrada) de entradas vendidas para
  155. --la ciudad de Yavi y considere aplicar un descuento del 10%
  156. select sum(entradas_vendidas * precio_entrada * 0.9) as importe_Total_conDescuento
  157. from campeonato
  158. where codigo_ciudad = (select codigo_ciudad from ciudad where nombre_ciudad='yavi');
  159.  
  160. --alternativa2
  161. select sum(entradas_vendidas * precio_entrada * 0.9) as import_desc
  162. from campeonato
  163. inner join ciudad on campeonato.codigo_ciudad = ciudad.codigo_ciudad
  164. where campeonato.codigo_ciudad = ciudad.codigo_ciudad and ciudad.nombre_ciudad = 'yavi';
  165. +++
  166. --26. Muestre el importe total (Entradas Vendidas * Precio Entrada) para cada “codigo_ciudad”
  167. --ordenado de forma ascendente.
  168. select codigo_ciudad, sum (entradas_vendidas * precio_entrada) as Importe_Total
  169. from campeonato
  170. group by codigo_ciudad
  171. order by codigo_ciudad asc;
  172. --Como me esta pidiendo para cada codigo que son 4, al usar group by agrupo el total para cada codigo en especifico
  173. -- y al principio cuando coloco codigo_ciudad es para  q se muestre cual es el codigo.
  174. ++++
  175.  
  176.  
  177. --27. Muestre el nombre de los deportes que se practican en la “ZonaB”.
  178. select deporte.nombre_deporte,
  179.         zona.nombre_zona
  180. from zona
  181. inner join equipo on zona.codigo_zona = equipo.codigo_zona
  182. inner join deporte on equipo.id_deporte = deporte.id_deporte
  183. where zona.nombre_zona = 'zonaB';
  184.  
  185. --28. Muestre la fecha de los campeonatos que se realizan en la región “Valle” y que corresponden a la “ZonaA”.
  186. select campeonato.fecha,
  187.         region.nombre_region,
  188.         zona.nombre_zona
  189. from zona
  190. inner join equipo on zona.codigo_zona = equipo.codigo_zona
  191. inner join campeonato on equipo.codigo_equipo = campeonato.codigo_equipo
  192. inner join ciudad on campeonato.codigo_ciudad = ciudad.codigo_ciudad
  193. inner join region on ciudad.id_region = region.id_region
  194. where region.nombre_region = 'valle' and zona.nombre_zona = 'zonaA';
  195.  
  196. select*from region;
  197.  
  198. --alternativa 2 si esq comienzo desde region pero es lo mismo me da lo mismo.
  199. select campeonato.fecha,
  200.         region.nombre_region,
  201.         zona.nombre_zona
  202. from region
  203. inner join ciudad on region.id_region = ciudad.id_region
  204. inner join campeonato on ciudad.codigo_ciudad = campeonato.codigo_ciudad
  205. inner join equipo on campeonato.codigo_equipo = equipo.codigo_equipo
  206. inner join zona on equipo.codigo_zona = zona.codigo_zona
  207. where region.nombre_region = 'valle' and zona.nombre_zona = 'zonaA';
  208. ++++++
  209. --29. Utilizando subconsultas muestre el “nombre_region” en donde se practica “Voley”.
  210. select region.nombre_region,
  211.         deporte.nombre_deporte
  212. from deporte
  213. inner join equipo on deporte.id_deporte = equipo.id_deporte
  214. inner join campeonato on equipo.codigo_equipo = campeonato.codigo_equipo
  215. inner join ciudad on campeonato.codigo_ciudad = ciudad.codigo_ciudad
  216. inner join region on ciudad.id_region = region.id_region
  217. where deporte.nombre_deporte = 'voley';
  218.  
  219.  
  220. select r.nombre_region
  221. from region r
  222. where r.id_region in (
  223.     select c.id_region
  224.     from ciudad c
  225.     join campeonato ca on c.codigo_ciudad = ca.codigo_ciudad
  226.     join equipo e on ca.codigo_equipo = e.codigo_equipo
  227.     where e.id_deporte = (
  228.         select d.id_deporte
  229.         from deporte d
  230.         where d.nombre_deporte = 'voley'
  231.  
  232.     )
  233. );
  234.  
  235. --30. Utilice subconsultas y muestre el nombre de los equipos que practican el deporte “Futbol”
  236. --en la ciudad de “S.S.Jujuy”.
  237. select equipo.nombre_equipo,
  238.         deporte.nombre_deporte,
  239.         ciudad.nombre_ciudad
  240. from deporte
  241. inner join equipo on deporte.id_deporte = equipo.id_deporte
  242. inner join campeonato on equipo.codigo_equipo = campeonato.codigo_equipo
  243. inner join ciudad on campeonato.codigo_ciudad  = ciudad.codigo_ciudad
  244. where deporte.nombre_deporte ='futbol' and ciudad.nombre_ciudad  = 's.s.jujuy';
  245.  
  246. --31. Muestre la cantidad de entradas vendidas en la ciudad de “Yavi”.
  247. select  sum (entradas_vendidas) as Entradas_vendidasYavi
  248. from campeonato
  249. inner join ciudad on campeonato.codigo_ciudad = ciudad.codigo_ciudad
  250. where ciudad.nombre_ciudad = 'yavi';
  251.  
  252. --32. Muestre el total recaudado por el "Equipo1” durante todo el campeonato.
  253. select sum(precio_entrada*entradas_vendidas) as Recaudado_Equipo1
  254. from campeonato
  255. inner join equipo on campeonato.codigo_equipo=equipo.codigo_equipo
  256. where equipo.nombre_equipo='equipo1';
  257.  
  258. --33. Muestre el nombre de la zona junto con la cantidad de deportes que se realizan en la misma.
  259. select zona.nombre_zona, count(distinct equipo.id_deporte) as cantidad_deportes
  260. from zona
  261. join equipo on zona.codigo_zona= equipo.codigo_zona
  262. group by zona.codigo_zona,zona.nombre_zona
  263.  
  264. --34. Muestre el nombre de la ciudad junto con el importe total recaudado en el campeonato
  265.  
  266. select ciudad.nombre_ciudad, sum(precio_entrada*entradas_vendidas) as Importe_total
  267. from campeonato
  268. join ciudad on campeonato.codigo_ciudad = ciudad.codigo_ciudad
  269. group by ciudad.nombre_ciudad, ciudad.codigo_ciudad
  270. order by ciudad.nombre_ciudad asc
  271.  
  272. --35. Muestre el nombre de la ciudad junto con la cantidad de equipos que compitieron en la misma
  273. select ciudad.nombre_ciudad, count(distinct equipo.codigo_equipo) as Cantidad_equiposcompitieron
  274. from ciudad
  275. inner join campeonato on ciudad.codigo_ciudad = campeonato.codigo_ciudad
  276. inner join equipo on campeonato.codigo_equipo = equipo.codigo_equipo
  277. group by ciudad.nombre_ciudad,ciudad.codigo_ciudad
  278. order by ciudad.nombre_ciudad asc
  279. ---FINISH!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement