Upload
paulita-valdeavellano
View
149
Download
0
Embed Size (px)
Citation preview
Consultas con Cálculos
Alumna: Paula Valdeavellano D.
Fecha : 21-05-12
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.
SELECT E.NOMBRES AS NOMBRE, E.APELLIDOS AS APELLIDO, P.RUT_EST AS RUT, P.FECHA_E AS F_DE_ENTREGA, TRUNC(SYSDATE) - P.FECHA_E AS DÍAS_ATRASADOS FROM ESTUDIANTES E, PRESTAMO P WHERE E.RUT_EST = P.RUT_EST AND P.FECHA_E < TRUNC(SYSDATE)
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.
SELECT E.NOMBRES AS NOMBRE, E.APELLIDOS AS APELLIDO, P.RUT_EST AS RUT, P.FECHA_E AS FECHA_ENTREGA, TRUNC(SYSDATE) - P.FECHA_E AS DÍAS_ATRASADOS, ((TRUNC(SYSDATE) - P.FECHA_E) * 1250) AS DEBE FROM ESTUDIANTES E, PRESTAMO P WHERE E.RUT_EST = P.RUT_EST AND P.FECHA_E < TRUNC(SYSDATE)
3. Entregue la suma de dinero que ganará la Biblioteca acumulada al día de hoy.
SELECT SUM((TRUNC(SYSDATE) - P.FECHA_E) * 1250) AS RECAUDADO FROM ESTUDIANTES E, PRESTAMO P WHERE E.RUT_EST = P.RUT_EST AND P.FECHA_E < TRUNC(SYSDATE)
4. Entregue el promedio de deuda que tienen los estudiantes al día de hoy.
SELECT TRUNC(AVG((TRUNC(SYSDATE) - P.FECHA_E) * 1250)) AS X_DEUDA FROM ESTUDIANTES E, PRESTAMO P WHERE E.RUT_EST = P.RUT_EST AND P.FECHA_E < TRUNC(SYSDATE)
5. Entregue la mínima deuda acumulada al día de hoy.
SELECT (MIN((TRUNC(SYSDATE) - P.FECHA_E) * 1250)) AS DEUDA_MINIMA FROM ESTUDIANTES E, PRESTAMO P WHERE E.RUT_EST = P.RUT_EST AND P.FECHA_E < TRUNC(SYSDATE)
6. Entregue la máxima deuda acumulada al día de hoy. SELECT (MAX((TRUNC(SYSDATE) - P.FECHA_E) * 1250)) AS DEUDA_MAXIMA FROM ESTUDIANTES E, PRESTAMO P WHERE E.RUT_EST = P.RUT_EST AND P.FECHA_E < TRUNC(SYSDATE)
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.
SELECT SUM((TRUNC(SYSDATE + 4) - P.FECHA_E) * 1250) AS RECAUDADO FROM ESTUDIANTES E, PRESTAMO P WHERE E.RUT_EST = P.RUT_EST AND P.FECHA_E < TRUNC(SYSDATE + 4)
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.
Se selecciona el nombre, el apellido, Rut del estudiante y el título del libro que tiene prestado el estudiante y que además posee la mayor o menor deuda en biblioteca (dependerá si se solicita MAXIMO o MINIMO) mediante la búsqueda, se tendrá como restricción todas las fechas que superen la fecha de entrega como días atrasados y utilizando trunc (sysdate) para filtrar horas, min, etc., la información será seleccionada de las tablas libros, préstamo y estudiantes.
9. Entregue el nombre de la carrera y la cantidad de estudiantes por cada una de ellas que tiene libros atrasados.
SELECT C.NOMBRE AS CARRERA, COUNT(P.FECHA_E) AS ATRASOS FROM CARRERAS C, PRESTAMO P, ESTUDIANTES E WHERE C.ID_CARRERA = E.ID_CARRERA AND E.RUT_EST = P.RUT_EST AND P.FECHA_E < SYSDATE 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 C.NOMBRE AS CARRERA, COUNT(P.FECHA_E) AS PRESTAMOS FROM CARRERAS C, PRESTAMO P, ESTUDIANTES E WHERE C.ID_CARRERA = E.ID_CARRERA AND E.RUT_EST = P.RUT_EST GROUP BY C.NOMBRE
11. Investigue como entregar las 10 carreras que tienen mayor cantidad de libros en préstamo.
SELECT * FROM (SELECT C.NOMBRE AS CARRERA, COUNT(P.FECHA_E) AS PRESTAMOS FROM CARRERAS C, PRESTAMO P, ESTUDIANTES E WHERE C.ID_CARRERA = E.ID_CARRERA AND E.RUT_EST = P.RUT_EST GROUP BY C.NOMBRE ORDER BY COUNT(P.FECHA_E) DESC) WHERE ROWNUM <= 10