TD SQL, Correction
On considère la base de données « videoClub » permettant de gérer les films, les clients, les emprunts…
d’un vidéo-club et dont le schéma relationnel est le suivant :
3. Afficher la somme du prix des locations (hors abonnement) pour chaque abonné.
SELECT Titre
From VIDEO
WHERE codevideo NOT IN (
SELECT codevideo
FROM EMPRUNT);
SELECT Titre
FROM VIDEO,EMPRUNT
WHERE VIDEO.codevideo=EMPRUNT.codevideo
GROUP BY VIDEO.codevideo,Titre
HAVING count(*) >= 3;
SELECT Titre
FROM VIDEO
WHERE codevideo IN ( SELECT codevideo
FROM (SELECT DISTINCT codevideo, nuabonne FROM EMPRUNT)
GROUP BY codevideo
HAVING count(*) >= 3);
9. Afficher la liste des films empruntés au moins 3 fois par un même abonné.
10. Conseiller Berthe Berurier. Ne pas lui proposer un film qu'elle a déjà loué.
SELECT Titre
FROM VIDEO
WHERE codevideo IN (
SELECT codevideoassocie
FROM association
WHERE codevideo IN ( SELECT codevideo
FROM EMPRUNT, ABONNE
WHERE Abonne.nom='BERURIER'
AND Abonne.prenom='Berthe'
AND Abonne.nuabonne=emprunt.nuabonne) )
AND Codevideo NOT IN ( SELECT codevideo
FROM EMPRUNT, ABONNE
WHERE Abonne.nom='BERURIER'
AND Abonne.prenom='Berthe'
AND Abonne.nuabonne=emprunt.nuabonne);
11. Afficher la liste des films qui ne sont conseillés dans aucun cas.
SELECT Titre
FROM video
WHERE codevideo NOT IN ( SELECT codevideoassocie FROM ASSOCIATION);