Saltar al contenido

Proyecto: los préstamos vencidos

SQL · Unidad 14: Textos y fechas

La bibliotecaria va a llamar a quienes tienen un libro fuera. Quiere saber a quién llama, por qué libro y cuántos días lleva con él. El título está en libros, así que hace falta un JOIN, con p para prestamos y l para libros.

Hoy, 15 de enero de 2026, hay tres libros fuera. El plazo es de 3 días, y Diego lleva 5 con «El faro».

La lista tiene una fila por préstamo, y no por socio. En prestamos, Ana pueden ser dos personas, y un préstamo es de una sola.

SELECT l.titulo, p.socio,
  JULIANDAY('2026-01-15')
    - JULIANDAY(p.prestado) AS dias
FROM prestamos p
JOIN libros l
  ON p.libro_id = l.id
WHERE p.devuelto IS NULL
ORDER BY dias DESC;

Devuelve

titulosociodias
El faroDiego5
El tren del surCamila3
La casa azulAna2

Ejercicios de esta lección

Se hacen en la app, que los corrige al momento y explica por qué.

  1. 1. Completa el código

    Antes de llamar, la bibliotecaria quiere ver cómo va cada préstamo. Un libro cuyo plazo acabó antes de hoy está vencido. Si acaba hoy, 15 de enero de 2026, todavía se puede devolver. Completa las dos comparaciones.

  2. 2. Escribe el código

    Escribe la lista de las llamadas, con dos columnas en este orden. Primero, la línea que la bibliotecaria lee por teléfono, con el socio, dos puntos, un espacio y el título, como Diego: El faro. Después, los días de retraso, que son los que el libro lleva fuera menos los 3 del plazo. Solo entran los préstamos sin devolver cuyo plazo acabó antes de hoy, y uno que vence hoy no entra. Ordena del mayor retraso al menor y, si empatan, por el id del préstamo. Hoy se puede escribir '2026-01-15' o DATE('now'). Usa los alias p y l.

  3. 3. Opción múltiple

    En una biblioteca de verdad, la bibliotecaria abriría esta lista cada mañana sin que nadie la reescribiera. Con la fecha escrita a mano, hoy está en dos sitios de la consulta, en la cuenta del retraso y en el WHERE. ¿Qué habría que cambiar?

Hacer esta lección

Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.

Ver todas las lecciones →