Universidad Austral de Chile  Facultad de Ciencias Económicas y Administrativas                Ingeniería ComercialSistema...
ActividadesSupuestos: La base de datos no guarda el histórico de los préstamos realizados, es decir, queal entregar un lib...
3.- Entregue la suma de dinero que ganará la Biblioteca acumulada al día de hoy. Ayuda: Parahacer la suma se usa la funció...
8.- En su sistema de Base de Datos se encuentran 2 Vistas (Views), una llamada MAXIMO y otrallamada MINIMO. Describa clara...
9.- Entregue el nombre de la carrera y la cantidad de estudiantes por cada una de ellas que tienelibros atrasados. Ayuda: ...
order by numero_prestamos_vigentes desc)    where rownum <= 10Bibliografía:http://www.desarrolloweb.com/articulos/2337.php...
Próxima SlideShare
Cargando en…5
×

PLSQL Ayudantia

466 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
466
En SlideShare
0
De insertados
0
Número de insertados
77
Acciones
Compartido
0
Descargas
7
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

PLSQL Ayudantia

  1. 1. Universidad Austral de Chile Facultad de Ciencias Económicas y Administrativas Ingeniería ComercialSistema de Información Empresarial Guía de laboratorio N° 2 PLSQL Developer Asignatura: Sistema de información empresarial Profesor: Cristian Salazar Profesor Ayudante: José Luis Carrasco Estudiante: Mónica Navarrete Mayo 2012 - VALDIVIA
  2. 2. ActividadesSupuestos: La base de datos no guarda el histórico de los préstamos realizados, es decir, queal entregar un libro, ese préstamo se elimina de la tabla PRESTAMO.1.- Se solicita realizar una consulta que entregue a los estudiantes atrasados en la entrega de suspréstamos de libros, e indicar la cantidad de días de atraso para cada préstamo. Los campos amostrar son: Rut del estudiante, Nombres, Apellidos y el N° de días de atraso. Ayuda: Usar lafecha del sistema denominada por SYSDATE, y usar la función TRUNC para quitar las horas,minutos y segundos de las fechas.select e.rut_est, e.nombres, e.apellidos, p.fecha_e,trunc(sysdate - p.fecha_e) as atraso from estudiantes e, prestamo p where p.fecha_e < sysdate and e.rut_est = p.rut_est2.- Si cada día efectivo de atraso tiene un valor de $1250, entregue los mismo que en (1), peroagregando una nueva columna con la deuda adquirida por cada estudiante. Ayuda: Paramultiplicar se usa el *, entonces si se desea multiplicar A por B, sería A*B.select e.rut_est, e.nombres, e.apellidos, p.fecha_e,trunc(sysdate - p.fecha_e) as atraso,trunc(sysdate - p.fecha_e)*1250 as deuda from estudiantes e, prestamo p where p.fecha_e < sysdate and e.rut_est = p.rut_est
  3. 3. 3.- Entregue la suma de dinero que ganará la Biblioteca acumulada al día de hoy. Ayuda: Parahacer la suma se usa la función SUM y la función GROUP BY.select sum((trunc(sysdate) - trunc(p.fecha_e))*1250) as deuda_total from prestamo p where trunc(sysdate) > trunc(p.fecha_e)4.- Entregue el promedio de deuda que tienen los estudiantes al día de hoy. Ayuda: Para calcularel promedio se usa la función AVG y la función GROUP BY.select avg((trunc(sysdate) - trunc(p.fecha_e))*1250) as promedio_deuda from prestamo p where trunc(sysdate) > trunc(p.fecha_e)5.- Entregue la mínima deuda acumulada al día de hoy. Ayuda: Utilice la función MIN y la funciónGROUP BY.select min((trunc(sysdate)-trunc(p.fecha_e))*1250) as minima_deuda from prestamo p where 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ónGROUP BY.select max((trunc(sysdate)-trunc(p.fecha_e))*1250) as minima_deuda from prestamo p where trunc(sysdate) > trunc(p.fecha_e)7.- Suponiendo que ninguno de los estudiantes que se encuentran con préstamo entrega suslibros, cual será la deuda acumulada para 4 días más. Ayuda: Para sumar un días a una fecha sehace de la siguiente forma: FECHA + N, donde N es la cantidad de días a sumar y FECHA es lafecha 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_total_cuatro_dias from prestamo p where trunc(sysdate + 4) > trunc(p.fecha_e)
  4. 4. 8.- En su sistema de Base de Datos se encuentran 2 Vistas (Views), una llamada MAXIMO y otrallamada MINIMO. Describa claramente que entregan cada una de ellas, haciendo análisis de cadaparte de la consulta. Ayuda: Busque información sobre Sub-Consultas.create or replace view minimos asselect p.rut_est RUT, e.apellidos || || e.nombres NOMBRE, l.titulo, (trunc(sysdate) - trunc(p.fecha_e)) * 1250 as DIAS_ATRASO from prestamo p, estudiantes e, libros l where trunc(p.fecha_e) < trunc(sysdate) and p.rut_est = e.rut_est and p.cod_libro = l.cod_libro and (trunc(sysdate) - trunc(p.fecha_e)) = (select min(trunc(sysdate) - trunc(p2.fecha_e)) from prestamo p2 where trunc(p2.fecha_e) < trunc(sysdate));Esta tabla muestra los estudiantes que tienen una mínima deuda, utilizando una sub-consulta quele entrega los días mínimos en la base de datos de los textos atrasados, esta consulta en el últimoand corresponde a otra consulta anterior.create or replace view maximos asselect p.rut_est RUT, e.apellidos || || e.nombres NOMBRE, l.titulo, (trunc(sysdate) - trunc(p.fecha_e)) * 1250 as DIAS_ATRASO from prestamo p, estudiantes e, libros l where trunc(p.fecha_e) < trunc(sysdate) and p.rut_est = e.rut_est and p.cod_libro = l.cod_libro and (trunc(sysdate) - trunc(p.fecha_e)) = (select max(trunc(sysdate) - trunc(p2.fecha_e)) from prestamo p2 where trunc(p2.fecha_e) < trunc(sysdate));Esta tabla entrega a los estudiantes que poseen la máxima deuda por sus días de atraso, utilizauna sub-consulta que entrega el máximo números de días de atraso, la consulta que está en elúltimo and, corresponde a una consulta anteriormente hecha a la base de datos.
  5. 5. 9.- Entregue el nombre de la carrera y la cantidad de estudiantes por cada una de ellas que tienelibros atrasados. Ayuda: Use la función COUNT y la función GROUP BY.select c.nombre as carrera, count(p.rut_est) as n_alumnos_pres_atarsados from carreras c, prestamo p, estudiantes e where p.rut_est = e.rut_est and e.id_carrera = c.id_carrera and trunc(p.fecha_e) < trunc(sysdate) group by c.nombre10.- Los mismo que en (9) pero esta vez que entregue la cantidad de estudiantes que tiene un libroen préstamo ya sea atrasado o al día.select c.nombre as carrera, count(p.rut_est) as n_est_un_prest from carreras c, prestamo p, estudiantes e where p.rut_est = e.rut_est and e.id_carrera = c.id_carrera group by c.nombre11.- 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 "CARRERA","NUMERO_PRESTAMOS_VIGENTES" from (select c.nombre as carrera, count(p.rut_est) as numero_prestamos_vigentes from carreras c, prestamo p, estudiantes e where p.rut_est = e.rut_est and e.id_carrera = c.id_carrera group by c.nombre
  6. 6. order by numero_prestamos_vigentes desc) where rownum <= 10Bibliografía:http://www.desarrolloweb.com/articulos/2337.phphttp://www.epidataconsulting.com/tikiwiki/tiki-read_article.php?articleId=63

×