SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
Universidad Austral de Chile.

               Facultad Ciencias Económicas y Administrativas.

               Escuela de Ingeniería Comercial.




                Ayudantia de SQL: sub-consultas




Integrantes:   Carlos Mancilla I.

Asignatura:    Sistema de Información Empresarial

Profesor Responsable: Cristian Salazar




                                    Valdivia, 17 de Mayo de 2012.
Carlos Andrés Mancilla Ibaca - Ing. Comercial


 1.- Se solicita realizar una consulta que entregue a los estudiantes atrasados en la entrega de sus
préstamos de libros, e indicar la cantidad de días de atraso para cada préstamo. Los campos a
mostrar son: Rut del estudiante, Nombres, Apellidos y el N° de días de atraso. Ayuda: Usar la
fecha del sistema denominada por SYSDATE, y usar la función TRUNC para quitar las horas,
minutos y segundos de las fechas.
select p.rut_est, e.nombres, e.apellidos, l.titulo, (trunc(sysdate) - trunc(p.fecha_e)) as
ATRASO
from prestamo p, estudiantes e, libros l
where p.rut_est = e.rut_est
and p.cod_libro = l.cod_libro
and trunc(sysdate) > trunc(p.fecha_e)




2.- Si cada día efectivo de atraso tiene un valor de $1250, entregue los mismo que en (1), pero
agregando una nueva columna con la deuda adquirida por cada estudiante. Ayuda: Para
multiplicar se usa el *, entonces si se desea multiplicar A por B, sería A*B.
select p.rut_est, e.nombres, e.apellidos, l.titulo, (trunc(sysdate) - trunc(p.fecha_e)) as
ATRASO, (trunc(sysdate) - trunc(p.fecha_e))*1250 as DEUDA
from prestamo p, estudiantes e, libros l
where p.rut_est = e.rut_est
and p.cod_libro = l.cod_libro
and trunc(sysdate) > trunc(p.fecha_e)




3.- Entregue la suma de dinero que ganará la Biblioteca acumulada al día de hoy. Ayuda: Para
hacer la suma se usa la función SUM y la función GROUP BY.
select SUM (trunc(sysdate) - trunc(p.fecha_e))*1250 AS INGRESO_BIBLIO
from prestamo p, estudiantes e, libros l
where p.rut_est = e.rut_est
and p.cod_libro = l.cod_libro
and trunc(sysdate) > trunc(p.fecha_e)




4.- Entregue el promedio de deuda que tienen los estudiantes al día de hoy. Ayuda: Para calcular
el promedio se usa la función AVG y la función GROUP BY.
select ROUND(AVG ((trunc(sysdate) - trunc(p.fecha_e))*1250)) AS PROM_DEUDA
from prestamo p, estudiantes e, libros l
where p.rut_est = e.rut_est
and p.cod_libro = l.cod_libro
and trunc(sysdate) > trunc(p.fecha_e)
Carlos Andrés Mancilla Ibaca - Ing. Comercial


5.- Entregue la mínima deuda acumulada al día de hoy. Ayuda: Utilice la función MIN y la función
GROUP BY.
select MIN ((trunc(sysdate) - trunc(p.fecha_e))*1250) AS MIN_DEUDA
from prestamo p, estudiantes e, libros l
where p.rut_est = e.rut_est
and p.cod_libro = l.cod_libro
and trunc(sysdate) > trunc(p.fecha_e)




6.- Entregue la máxima deuda acumulada al día de hoy. Ayuda: utilice la función MAX y la función
GROUP BY.
select MAX ((trunc(sysdate) - trunc(p.fecha_e))*1250) AS MIN_DEUDA
from prestamo p, estudiantes e, libros l
where p.rut_est = e.rut_est
and p.cod_libro = l.cod_libro
and trunc(sysdate) > trunc(p.fecha_e)




 7.- Suponiendo que ninguno de los estudiantes que se encuentran con préstamo entrega sus
libros, cual será la deuda acumulada para 4 días más. Ayuda: Para sumar un días a una fecha se
hace de la siguiente forma: FECHA + N, donde N es la cantidad de días a sumar y FECHA es la
fecha a la cual le estamos sumandos días. Para el caso de la fecha de hoy, sería SYSDATE + N.
select SUM((trunc(sysdate+4) - trunc(p.fecha_e))*1250) AS DEUDA_4_DIAS
from prestamo p, estudiantes e, libros l
where p.rut_est = e.rut_est
and p.cod_libro = l.cod_libro
and trunc(sysdate+4) > trunc(p.fecha_e)
Carlos Andrés Mancilla Ibaca - Ing. Comercial


8.- En su sistema de Base de Datos se encuentran 2 Vistas (Views), una llamada MAXIMO y otra
llamada MINIMO. Describa claramente que entregan cada una de ellas, haciendo análisis de cada
parte de la consulta. Ayuda: Busque información sobre Sub-Consultas.




         La vista máximos nos entrega el rut por separado, nombre y apellidos unidos en una sola
celda del alumno con mas días de atraso y el monto máximo a pagar en relación a todos los
atrasos que se encuentran el base de datos, además de indicar el libro involucrado en el préstamo,
esto lo hace a través de una sub consulta que podemos ver en las ultimas líneas de la consulta
cuando se abre un paréntesis, en este momento se genera una tabla sobre la que trabaja la
función general, en esta nueva tabla se da la condición del máximo. Para la consulta siguiente en la
cual se generan los mínimos pagos vemos la sub-consulta en el mismo lugar en las filas de la
programación de la vista y los mismos atributos al comienzo como el integrar nombre y apellido de
los estudiantes.



9.- Entregue el nombre de la carrera y la cantidad de estudiantes por cada una de ellas que tiene
libros atrasados. Ayuda: Use la función COUNT y la función GROUP BY.
select COUNT(e.rut_est), c.nombre
from prestamo p, estudiantes e, carreras c
where p.rut_est = e.rut_est
AND e.id_carrera = c.id_carrera
and trunc(sysdate) > trunc(p.fecha_e)
group by c.nombre


10.- Los mismo que en (9) pero esta vez que entregue la cantidad de estudiantes que tiene un libro
en préstamo ya sea atrasado o al día.
select COUNT(e.rut_est), c.nombre
from prestamo p, estudiantes e, carreras c
where p.rut_est = e.rut_est
AND e.id_carrera = c.id_carrera
group by c.nombre
Carlos Andrés Mancilla Ibaca - Ing. Comercial


11.- Investigue como entregar las 10 carreras que tienen mayor cantidad de libros en préstamo.
Ayuda: Se usa un tipo de función llamada ROWNUM y la función ORDER BY.
select * from (
select COUNT(e.rut_est), c.nombre
from prestamo p, estudiantes e, carreras c
where p.rut_est = e.rut_est
AND e.id_carrera = c.id_carrera
group by c.nombre
order by COUNT(e.rut_est) desc)
where rownum <=10

Más contenido relacionado

Destacado (20)

Actividad tecnología 2
Actividad tecnología 2Actividad tecnología 2
Actividad tecnología 2
 
Procesos industriales area manufactura
Procesos industriales area manufacturaProcesos industriales area manufactura
Procesos industriales area manufactura
 
Uss 2011-hyc-articulo
Uss 2011-hyc-articuloUss 2011-hyc-articulo
Uss 2011-hyc-articulo
 
Albacete campaña de abonos
Albacete campaña de abonosAlbacete campaña de abonos
Albacete campaña de abonos
 
Albacete campaña de abonados
Albacete campaña de abonadosAlbacete campaña de abonados
Albacete campaña de abonados
 
Modulo8
Modulo8Modulo8
Modulo8
 
Naturaleza
NaturalezaNaturaleza
Naturaleza
 
Curso Movilidad Juvenil UE extremadura 2013
Curso Movilidad Juvenil UE extremadura 2013Curso Movilidad Juvenil UE extremadura 2013
Curso Movilidad Juvenil UE extremadura 2013
 
Traduccion data warehousing
Traduccion data warehousingTraduccion data warehousing
Traduccion data warehousing
 
Projets FEJIDIF
Projets FEJIDIFProjets FEJIDIF
Projets FEJIDIF
 
Fases 2
Fases 2Fases 2
Fases 2
 
MONET_TOURO
MONET_TOUROMONET_TOURO
MONET_TOURO
 
Los huesos
Los huesosLos huesos
Los huesos
 
Libro 2 si funciona cambielo
Libro 2 si funciona cambieloLibro 2 si funciona cambielo
Libro 2 si funciona cambielo
 
Capítulo v
Capítulo vCapítulo v
Capítulo v
 
Decágolo Slim
Decágolo SlimDecágolo Slim
Decágolo Slim
 
Programa mundial de alimentos (pma)
Programa mundial de alimentos (pma)Programa mundial de alimentos (pma)
Programa mundial de alimentos (pma)
 
Materiales modalidad semipresencial
Materiales modalidad semipresencialMateriales modalidad semipresencial
Materiales modalidad semipresencial
 
Cultura egipcia
Cultura egipciaCultura egipcia
Cultura egipcia
 
Sesion n°1 2012 icr
Sesion n°1 2012 icrSesion n°1 2012 icr
Sesion n°1 2012 icr
 

Similar a Tarea 2

Similar a Tarea 2 (20)

PLSQL Ayudantia
PLSQL Ayudantia PLSQL Ayudantia
PLSQL Ayudantia
 
Tarea ayudantia nº2
Tarea ayudantia nº2Tarea ayudantia nº2
Tarea ayudantia nº2
 
Ayudantia 14 05
Ayudantia 14 05Ayudantia 14 05
Ayudantia 14 05
 
Laboratorio14.05.2012
Laboratorio14.05.2012Laboratorio14.05.2012
Laboratorio14.05.2012
 
Laboratorio n2 de ayudantía sie
Laboratorio n2 de ayudantía  sieLaboratorio n2 de ayudantía  sie
Laboratorio n2 de ayudantía sie
 
Tarea sia
Tarea siaTarea sia
Tarea sia
 
Tarea+siaaa
Tarea+siaaaTarea+siaaa
Tarea+siaaa
 
Tarea sia (2)
Tarea sia (2)Tarea sia (2)
Tarea sia (2)
 
Laboratorio SIA - 2
Laboratorio SIA - 2Laboratorio SIA - 2
Laboratorio SIA - 2
 
Laboratorio sia 2 (1)
Laboratorio sia 2 (1)Laboratorio sia 2 (1)
Laboratorio sia 2 (1)
 
Tarea ahora
Tarea ahoraTarea ahora
Tarea ahora
 
PLSQL
PLSQLPLSQL
PLSQL
 
Trabajo ayudantía
Trabajo ayudantíaTrabajo ayudantía
Trabajo ayudantía
 
Lab 2
Lab 2Lab 2
Lab 2
 
Lab 2
Lab 2Lab 2
Lab 2
 
Laboratorio
LaboratorioLaboratorio
Laboratorio
 
Laboratorios i, ii y iii misael manríquez
Laboratorios i, ii y iii   misael manríquezLaboratorios i, ii y iii   misael manríquez
Laboratorios i, ii y iii misael manríquez
 
Tarea final sie 2012
Tarea final sie 2012Tarea final sie 2012
Tarea final sie 2012
 
Laboratorio n° 1
Laboratorio n° 1Laboratorio n° 1
Laboratorio n° 1
 
Actividad 1 Ayudantia. Consultas y Vistas
Actividad 1 Ayudantia. Consultas y VistasActividad 1 Ayudantia. Consultas y Vistas
Actividad 1 Ayudantia. Consultas y Vistas
 

Más de Carlos Mancilla

Tarea sistemas definiciones
Tarea  sistemas definicionesTarea  sistemas definiciones
Tarea sistemas definicionesCarlos Mancilla
 
Tarea consultas ayudantia 23 del 4
Tarea consultas ayudantia 23 del 4Tarea consultas ayudantia 23 del 4
Tarea consultas ayudantia 23 del 4Carlos Mancilla
 
Trabajo consultas access con diseño en sql
Trabajo consultas access con diseño en sqlTrabajo consultas access con diseño en sql
Trabajo consultas access con diseño en sqlCarlos Mancilla
 

Más de Carlos Mancilla (7)

Ayudantia 4 de junio
Ayudantia 4 de junioAyudantia 4 de junio
Ayudantia 4 de junio
 
Tarea ensayo
Tarea  ensayoTarea  ensayo
Tarea ensayo
 
Tarea sistemas definiciones
Tarea  sistemas definicionesTarea  sistemas definiciones
Tarea sistemas definiciones
 
Manual practicosql
Manual practicosqlManual practicosql
Manual practicosql
 
Tarea consultas ayudantia 23 del 4
Tarea consultas ayudantia 23 del 4Tarea consultas ayudantia 23 del 4
Tarea consultas ayudantia 23 del 4
 
Trabajo consultas access con diseño en sql
Trabajo consultas access con diseño en sqlTrabajo consultas access con diseño en sql
Trabajo consultas access con diseño en sql
 
Manual practicosql
Manual practicosqlManual practicosql
Manual practicosql
 

Tarea 2

  • 1. Universidad Austral de Chile. Facultad Ciencias Económicas y Administrativas. Escuela de Ingeniería Comercial. Ayudantia de SQL: sub-consultas Integrantes: Carlos Mancilla I. Asignatura: Sistema de Información Empresarial Profesor Responsable: Cristian Salazar Valdivia, 17 de Mayo de 2012.
  • 2. Carlos Andrés Mancilla Ibaca - Ing. Comercial 1.- Se solicita realizar una consulta que entregue a los estudiantes atrasados en la entrega de sus préstamos de libros, e indicar la cantidad de días de atraso para cada préstamo. Los campos a mostrar son: Rut del estudiante, Nombres, Apellidos y el N° de días de atraso. Ayuda: Usar la fecha del sistema denominada por SYSDATE, y usar la función TRUNC para quitar las horas, minutos y segundos de las fechas. select p.rut_est, e.nombres, e.apellidos, l.titulo, (trunc(sysdate) - trunc(p.fecha_e)) as ATRASO from prestamo p, estudiantes e, libros l where p.rut_est = e.rut_est and p.cod_libro = l.cod_libro and trunc(sysdate) > trunc(p.fecha_e) 2.- Si cada día efectivo de atraso tiene un valor de $1250, entregue los mismo que en (1), pero agregando una nueva columna con la deuda adquirida por cada estudiante. Ayuda: Para multiplicar se usa el *, entonces si se desea multiplicar A por B, sería A*B. select p.rut_est, e.nombres, e.apellidos, l.titulo, (trunc(sysdate) - trunc(p.fecha_e)) as ATRASO, (trunc(sysdate) - trunc(p.fecha_e))*1250 as DEUDA from prestamo p, estudiantes e, libros l where p.rut_est = e.rut_est and p.cod_libro = l.cod_libro and trunc(sysdate) > trunc(p.fecha_e) 3.- Entregue la suma de dinero que ganará la Biblioteca acumulada al día de hoy. Ayuda: Para hacer la suma se usa la función SUM y la función GROUP BY. select SUM (trunc(sysdate) - trunc(p.fecha_e))*1250 AS INGRESO_BIBLIO from prestamo p, estudiantes e, libros l where p.rut_est = e.rut_est and p.cod_libro = l.cod_libro and trunc(sysdate) > trunc(p.fecha_e) 4.- Entregue el promedio de deuda que tienen los estudiantes al día de hoy. Ayuda: Para calcular el promedio se usa la función AVG y la función GROUP BY. select ROUND(AVG ((trunc(sysdate) - trunc(p.fecha_e))*1250)) AS PROM_DEUDA from prestamo p, estudiantes e, libros l where p.rut_est = e.rut_est and p.cod_libro = l.cod_libro and trunc(sysdate) > trunc(p.fecha_e)
  • 3. Carlos Andrés Mancilla Ibaca - Ing. Comercial 5.- Entregue la mínima deuda acumulada al día de hoy. Ayuda: Utilice la función MIN y la función GROUP BY. select MIN ((trunc(sysdate) - trunc(p.fecha_e))*1250) AS MIN_DEUDA from prestamo p, estudiantes e, libros l where p.rut_est = e.rut_est and p.cod_libro = l.cod_libro and trunc(sysdate) > trunc(p.fecha_e) 6.- Entregue la máxima deuda acumulada al día de hoy. Ayuda: utilice la función MAX y la función GROUP BY. select MAX ((trunc(sysdate) - trunc(p.fecha_e))*1250) AS MIN_DEUDA from prestamo p, estudiantes e, libros l where p.rut_est = e.rut_est and p.cod_libro = l.cod_libro and trunc(sysdate) > trunc(p.fecha_e) 7.- Suponiendo que ninguno de los estudiantes que se encuentran con préstamo entrega sus libros, cual será la deuda acumulada para 4 días más. Ayuda: Para sumar un días a una fecha se hace de la siguiente forma: FECHA + N, donde N es la cantidad de días a sumar y FECHA es la fecha a la cual le estamos sumandos días. Para el caso de la fecha de hoy, sería SYSDATE + N. select SUM((trunc(sysdate+4) - trunc(p.fecha_e))*1250) AS DEUDA_4_DIAS from prestamo p, estudiantes e, libros l where p.rut_est = e.rut_est and p.cod_libro = l.cod_libro and trunc(sysdate+4) > trunc(p.fecha_e)
  • 4. Carlos Andrés Mancilla Ibaca - Ing. Comercial 8.- En su sistema de Base de Datos se encuentran 2 Vistas (Views), una llamada MAXIMO y otra llamada MINIMO. Describa claramente que entregan cada una de ellas, haciendo análisis de cada parte de la consulta. Ayuda: Busque información sobre Sub-Consultas. La vista máximos nos entrega el rut por separado, nombre y apellidos unidos en una sola celda del alumno con mas días de atraso y el monto máximo a pagar en relación a todos los atrasos que se encuentran el base de datos, además de indicar el libro involucrado en el préstamo, esto lo hace a través de una sub consulta que podemos ver en las ultimas líneas de la consulta cuando se abre un paréntesis, en este momento se genera una tabla sobre la que trabaja la función general, en esta nueva tabla se da la condición del máximo. Para la consulta siguiente en la cual se generan los mínimos pagos vemos la sub-consulta en el mismo lugar en las filas de la programación de la vista y los mismos atributos al comienzo como el integrar nombre y apellido de los estudiantes. 9.- Entregue el nombre de la carrera y la cantidad de estudiantes por cada una de ellas que tiene libros atrasados. Ayuda: Use la función COUNT y la función GROUP BY. select COUNT(e.rut_est), c.nombre from prestamo p, estudiantes e, carreras c where p.rut_est = e.rut_est AND e.id_carrera = c.id_carrera and trunc(sysdate) > trunc(p.fecha_e) group by c.nombre 10.- Los mismo que en (9) pero esta vez que entregue la cantidad de estudiantes que tiene un libro en préstamo ya sea atrasado o al día. select COUNT(e.rut_est), c.nombre from prestamo p, estudiantes e, carreras c where p.rut_est = e.rut_est AND e.id_carrera = c.id_carrera group by c.nombre
  • 5. Carlos Andrés Mancilla Ibaca - Ing. Comercial 11.- Investigue como entregar las 10 carreras que tienen mayor cantidad de libros en préstamo. Ayuda: Se usa un tipo de función llamada ROWNUM y la función ORDER BY. select * from ( select COUNT(e.rut_est), c.nombre from prestamo p, estudiantes e, carreras c where p.rut_est = e.rut_est AND e.id_carrera = c.id_carrera group by c.nombre order by COUNT(e.rut_est) desc) where rownum <=10