Advertisement
jesus777matias

tp5

Nov 1st, 2019
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --1. Muestre todos los campos de Atención y Atención Detalle en una sola consulta
  2. --   relacionada. Realice una segunda consulta donde no se presente repetición de campos.
  3. select *
  4.        from atencion a,
  5.             detalle_atencion d
  6.  
  7.        where a.nro_atencion=d.nro_atencion
  8. ;
  9.  
  10. select a.*,
  11.        d.codigo_servicio,
  12.        d.cantidad_servicio
  13.  
  14.        from atencion a,
  15.             detalle_atencion d
  16.  
  17.        where a.nro_atencion=d.nro_atencion
  18. ;
  19.  
  20. --2. Muestre todos los campos de Atención, Mascota y Veterinario en una sola consulta
  21. --   relacionada. En el resultado de la consulta no deben existir campos repetidos.
  22. select a.nro_atencion,
  23.        a.fecha_atencion,
  24.        a.codigo_mascota,
  25.        m.nombre_mascota,
  26.        m.codigo_especie,
  27.        a.matricula_veterinario,
  28.        v.nombre_veterinario as "Veterinario",
  29.        v.domicilio,
  30.        a.forma_pago
  31.  
  32.        from atencion a,
  33.             mascota m,
  34.             veterinario v
  35.  
  36.        where a.codigo_mascota        = m.codigo_mascota    and
  37.              a.matricula_veterinario = v.matricula_veterinario;
  38.  
  39. --3. Utilizando subconsultas, muestre el “número atención” y “cantidad” del servicio cuya forma de pago es Crédito.
  40. select nro_atencion,
  41.        cantidad_servicio as cantidad
  42.        
  43.        from  detalle_atencion
  44.        where nro_atencion
  45.              in(
  46.             select nro_atencion
  47.                        from  atencion
  48.                    where forma_pago='C'
  49.              )
  50. ;
  51.  
  52. --4. Utilizando subconsultas, muestre el “nombre mascota” que figure en Atención.
  53. select nombre_mascota
  54.  
  55.        from  mascota
  56.        where codigo_mascota
  57.              in(
  58.             select codigo_mascota
  59.                        from atencion
  60.              )
  61. ;
  62. --5. Utilizando subconsultas, muestre el “nombre mascota” que no figure en Atención.
  63. select nombre_mascota
  64.  
  65.        from  mascota
  66.        where codigo_mascota
  67.              not in(
  68.             select codigo_mascota
  69.                    from atencion
  70.              )
  71. ;
  72.  
  73. --6. Utilizando subconsultas, muestre las atenciones (Detalle Atención) que fueron atendidos
  74. --   por el veterinario “Rivas”.
  75. select *
  76.        from  detalle_atencion
  77.        where nro_atencion
  78.    
  79.              in(
  80.         select nro_atencion
  81.                from  atencion
  82.                    where matricula_veterinario
  83.                      in(
  84.                 select matricula_veterinario
  85.                                from  veterinario
  86.                                where nombre_veterinario='Rivas'
  87.                  )
  88.              )
  89. ;
  90.  
  91. --7. Elabore una vista llamada “VAtencion” que muestre los datos de Atención y Detalle
  92. --   Atención.
  93. create view "VAtencion" as
  94.        select a.*,
  95.               d.codigo_servicio,
  96.               d.cantidad_servicio
  97.  
  98.              from atencion a,
  99.               detalle_atencion d
  100.  
  101.              where a.nro_atencion = d.nro_atencion
  102. ;
  103.  
  104. --8. Elabore una vista llamada “Info_Veterinario” que muestre los datos del Veterinario junto
  105. --   con la Atención realizada.
  106. create view "Info_Veterinario" as
  107.        select v.*,
  108.               a.nro_atencion
  109.  
  110.               from veterinario v,
  111.                atencion a
  112.  
  113.           where v.matricula_veterinario = a.matricula_veterinario
  114. ;
  115.  
  116. --9. Muestre la cantidad total de mascotas.
  117. select count(*) as "Total de Mascotas"
  118.        from mascota
  119. ;
  120.  
  121. --10. Visualice el máximo precio de un servicio.
  122. select max(precio_servicio) as "Precio del servicio mas caro" from servicio;
  123.  
  124. --11. Muestre el importe (precio * cantidad) en cada número de atención en orden descendente.
  125. select d.*,
  126.        s.precio_servicio*d.cantidad_servicio as importe
  127.        
  128.        from detalle_atencion d,
  129.         servicio s
  130.  
  131.        where s.codigo_servicio = d.codigo_servicio
  132.  
  133.        order by d.nro_atencion asc         
  134. ;
  135. --Extra
  136. select a.nro_atencion,
  137.        a.fecha_atencion,
  138.        v.nombre_veterinario,
  139.        m.nombre_mascota,
  140.        a.forma_pago,
  141.        sum(d.cantidad_servicio*s.precio_servicio) as "Total atencion"
  142.        
  143.        from atencion a,
  144.             veterinario v,
  145.         mascota m,
  146.             detalle_atencion d,
  147.         servicio s
  148.    
  149.        where d.codigo_servicio = s.codigo_servicio and
  150.              a.nro_atencion    = d.nro_atencion    and
  151.          a.codigo_mascota  = m.codigo_mascota  and
  152.          a.matricula_veterinario = v.matricula_veterinario
  153.  
  154.        group by a.nro_atencion,
  155.                 v.matricula_veterinario,
  156.         m.nombre_mascota
  157.  
  158.        order by a.nro_atencion
  159. ;
  160.    
  161. --12. Muestre el importe total recaudado por todas las atenciones.
  162. select sum(s.precio_servicio*d.cantidad_servicio) as "Importe Total"
  163.        
  164.        from servicio s,
  165.             detalle_atencion d
  166.  
  167.        where s.codigo_servicio=d.codigo_servicio
  168. ;
  169.  
  170. --13. Muestre el importe total recaudado en las atenciones que se realizaron por “Vacuna”,
  171. --    considere que se debe aplicar un descuento del 10%.
  172. select (s.precio_servicio*d.cantidad_servicio - s.precio_servicio*0.1) as importe
  173.        
  174.         from servicio s,
  175.              detalle_atencion d
  176.  
  177.     where s.codigo_servicio=d.codigo_servicio and
  178.           s.codigo_servicio='VAC'
  179. ;
  180.  
  181. --14. Obtenga la cantidad de atenciones para el nombre de mascota “Gati”.
  182. select count(a.codigo_mascota) as "atenciones a Gati"
  183.        
  184.        from atencion a
  185.    
  186.        where a.codigo_mascota
  187.        in(
  188.       select codigo_mascota
  189.              from  mascota
  190.          where nombre_mascota='Gati'
  191.     )
  192. ;
  193.  
  194. --15. Muestre el Nro atención y la cantidad de servicios que se realizaron en cada Detalle
  195. --    Atención agrupados por “Nro. Atención”. (Ej: Nro Atención=1000, Cantidad Servicios=2)
  196. select nro_atencion,
  197.        count(nro_atencion) as "Cantidad de servicos"
  198.  
  199.        from detalle_atencion
  200.        group by nro_atencion
  201.        order by nro_atencion asc
  202. ;
  203.  
  204. --16. Muestre el Nro atención y el total de servicios que se realizaron en cada Detalle Atención
  205. --    agrupados por “Nro. Atención”. (Ej: Nro Atención=1000, Total Servicios=3).
  206. select nro_atencion,
  207.        sum(cantidad_servicio) as "Servicios Totales"
  208.  
  209.        from detalle_atencion
  210.        group by nro_atencion
  211.        order by nro_atencion asc
  212. ;
  213.  
  214. --17. Utilizando subconsultas, muestre el “nombre mascota” a las cuales se les aplicó el servicio
  215. --    “Consulta”.
  216. select nombre_mascota
  217.        from mascota
  218.        where codigo_mascota
  219.              in(
  220.             select codigo_mascota
  221.                    from atencion
  222.                    where nro_atencion
  223.                          in(
  224.                     select nro_atencion
  225.                            from detalle_atencion
  226.                            where codigo_servicio
  227.                                  in(
  228.                                 select codigo_servicio
  229.                                from servicio
  230.                                where descripcion_servicio='Consulta'
  231.                           )
  232.                   )
  233.               )
  234. ;  
  235.  
  236. --18. Utilizando subconsultas, muestre el “nombre veterinario” que atendió a la especie “Perro”.
  237. select nombre_veterinario
  238.        from veterinario
  239.        where matricula_veterinario
  240.              in(
  241.             select matricula_veterinario
  242.                    from atencion
  243.                where codigo_mascota
  244.                      in(
  245.                 select codigo_mascota
  246.                            from mascota
  247.                        where codigo_especie
  248.                              in(
  249.                         select codigo_especie
  250.                                from especie
  251.                                where nombre_especie = 'Perro'
  252.                          )
  253.                  )
  254.              )
  255. ;
  256.  
  257. --19. Muestre el “nombre veterinario” que realizó atenciones entre las fechas 01/10/2019 y
  258. --    02/10/2019.
  259. select nombre_veterinario
  260.        from veterinario
  261.        where matricula_veterinario
  262.              in(
  263.         select matricula_veterinario
  264.                from atencion
  265.                where fecha_atencion between
  266.                      '01/10/2019' and '02/10/2019'
  267.              )
  268. ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement