Bonjour ! je suis étudiant en 1ère année de BTS Informatique, j'ai des cours de SQL, on travaille sur SQL server et une question du dernier TP me bloque complètement :
voici la structure de la base de données sur laquelle on travaille :
auteur(NumAuteur, NomAuteur, PrenAuteur)
livre(NumLivre, TitreLivre, DateParution, #NumAuteur)
traiter(#Livre, #Theme, Proportion)
theme(NumTheme, LibTheme, NiveauInteret)
Les clés primaires sont soulignées. Les clés étrangères sont précédées de "#".
Et voici le contenu de la table qui nous intéresse ici :
Table traiter
Livre Theme Proportion
1_____2_____1
2_____2_____0.5
2_____3_____0.5
3_____3_____0.4
3_____5_____0.6
4_____7_____1
5_____1_____0.3
5_____3_____0.3
5_____5_____0.4
6_____4_____1
7_____5_____0.2
7_____7_____0.8
8_____1_____0.8
8_____3_____0.2
9_____3_____1
10____1_____0.3
10____2_____0.2
10____3_____0.3
10____7_____0.2
L'attribut "Proportion" indique dans quelle proportion un livre traite d'un thème. Il est de type réel. Il contient une valeur comprise entre 0 et 1.
(exemple : un livre qui traite à 50% d'aventure, à 30 % de fiction et à 20% sentimental aura des proportions respectives de 0.5, 0.3 et 0.2)
La requête SQL demandée dans le TP sur laquelle je bloque est la suivante :
" Liste des numéros des livres et des thèmes déclarés comme étant traités plusieurs fois dans un même livre. "
En clair, le TP nous demande de donner la requête qui permettrait d'afficher le numéro d'un livre qui contiendrait deux fois le thème 2 par exemple. Cette requête est faite pour ne pas avoir de solution (c'est la question suivante du TP) car il ne peut pas y avoir 2 fois le même thème associé à un même livre, car cela irait à l'encontre de la clé primaire de la table "traiter".
Voilà le début de requête que j'ai commencé à écrire et qui m'a confirmé être un "bon départ" par le professeur :
Voilà, si quelqu'un peut m'aider à y voir plus clair ce serait génial ! Dites moi aussi si besoin de plus d'info, mais normalement pas besoin des trois autres tables, celle là suffit !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 select Livre from traiter group by Livre having ... //c'est là que je bloque
Partager