PaliSkill
SQL Intermédiaire

Leçon 5 / 9 — Chapitre 8: Mise en pratique : bibliothèque

CTE : les emprunts en retard

Une CTE peut isoler d'abord les emprunts non rendus, puis filtrer sur leur date de retour prévue — en supposant, pour cet exercice, que l'on se place au 10 avril 2024 (une date littérale fixe, jamais CURRENT_DATE).

WITH emprunts_en_cours AS (
  SELECT e.id, l.titre, a.nom, e.date_retour_prevue
  FROM emprunts e
  JOIN livres l ON e.livre_id = l.id
  JOIN adherents a ON e.adherent_id = a.id
  WHERE e.rendu = false
)
SELECT * FROM emprunts_en_cours
WHERE date_retour_prevue < '2024-04-10';

emprunts_en_cours isole d'abord les 3 emprunts non rendus (id 3, 4, 6). Le filtre externe ne garde que ceux dont la date de retour prévue précède le 10 avril 2024 : l'emprunt 3 (15 mars) et l'emprunt 4 (24 mars) sont en retard ; l'emprunt 6 (15 avril) ne l'est pas encore. Résultat : 2 lignes.

À retenir :

  • Isoler d'abord une CTE (ici, les emprunts en cours), puis filtrer dessus, décompose un calcul en deux étapes lisibles.
  • Un « retard » se calcule toujours contre une date de référence explicite et fixe dans un exercice — jamais CURRENT_DATE, dont le résultat changerait chaque jour.

À vous de jouer : avec la même date de référence (10 avril 2024), l'emprunt 6 (Les Sables de Kaelis, retour prévu le 15 avril) est-il en retard ?

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 80 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès