|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : avril 2009 Messages : 21 ![]() |
Bonjour a tous,
voila c'est pour un exercice de BD pour la gestion d'une bibliothèque j'ai 2 tables: Emprunt(Personne, livre, dateEmprunt,DateRetourPrevue, DateRetourEffective) qui contient toutes les informations sur les livres empruntés et Retour(Personne, livre, DateEmprunt, Pénalité retard) qui contient toutes les infos sur les livres rendus en retard il faut ecrire une requete SQL qui donne comme resultat: Toutes les personnes ayant TOUJOURS rendu en retard les livres qu'elles ont empruntés? j'ai essayé avec cette requete mais ça me donne les personnes ayant rendu AU MOINS UNE FOIS un livre en retard et pas TOUJOURS comme l'indique l'énoncé.... MA REQUETE: Code :
Help!!! ça fait longtemps que je sèche dessus Merci beaucoup a ceux qui prendront la peine de me répondre |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 638 ![]() |
Bonjour,
Je partirai sur l'inverse de la proposition pour retomber sur mes pattes je penses. C-a-d trouver les gens qui n'ont jamais rendu de livre en retard (EXCEPTION JOIN), et entourer tout ceci par une non existence de cet ensemble dans emprunt (NOT EXISTS). Ce qui fait quand même 3 jointures. edit: en fait non pas d'edit. |
|
|
00
|
|
|
#3 |
![]() ![]() |
TOUJOURS signifie que le nombre de retards de la personne est égal au nombre d'emprunts de cette personne.
Tourne-toi du côté de COUNT et de GROUP BY...
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
10
|
|
|
#4 | ||
|
Membre Expert
![]() Responsable de service informatique Inscription : janvier 2009 Messages : 1 081 ![]() |
Bonjour,
Pour reformuler, tu cherches les personnes: Qui ont rendu des livres en retard Qui n'ont pas rendu de livre "à temps" Je verrai quelquechose du genre: Autre solution: Code SQL :
Tatayo. |
||
|
|
10
|
|
|
#5 | |
|
Invité de passage
![]() Inscription : avril 2009 Messages : 21 ![]() |
Citation:
|
|
|
|
00
|
|
|
#6 | |||
|
Invité de passage
![]() Inscription : avril 2009 Messages : 21 ![]() |
Citation:
j'ai tort? |
|||
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : avril 2009 Messages : 21 ![]() |
oui mais pour pouvoir faire cette requete, il faudrait connaitre a l'avance le nom de toutes les personnes de la base non? (pour pouvoir les compter)
|
|
|
00
|
|
|
#8 | |
|
Invité de passage
![]() Inscription : avril 2009 Messages : 21 ![]() |
Citation:
quand vous dites les 3 solutions? desquels vous parlez? celles des précédents posts? vous pourriez m'en dire plus s'il vous plait? merci |
|
|
|
00
|
|
|
#9 | |||
![]() ![]() |
Citation:
Je te mets sur la voie... Combien d'emprunts par personne ? Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|||
|
00
|
|
|
#10 | |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 638 ![]() |
Citation:
Il faut donc prendre le truc a l'envers, enlever de l'ensemble des gens qui ont rendu un livre en retard ceux qui ont au moins une fois redu un livre en temps et en heure. C'est ce qu'a posté tatayo. La réponse Cinéphil marchera aussi. |
|
|
|
00
|
|
|
#11 | |||||
|
Invité de passage
![]() Inscription : avril 2009 Messages : 21 ![]() |
Citation:
Code :
je suis désolée de vous déranger encore mais vous pourriez me dire ce qui cloche? merci infiniment |
|||||
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() Responsable de service informatique Inscription : janvier 2009 Messages : 1 081 ![]() |
Je pense qu'il te manque une jointure dans ta requête...
Tatayo. |
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : avril 2009 Messages : 21 ![]() |
|
|
|
00
|
|
|
#14 | |||
![]() ![]() |
J'avais écrit ceci :
Citation:
Dans ta requête, tu fais la jointure sur le nombre d'emprunts = le nombre de retours. Si Jean à 5 emprunts et Jules 5 retours, les deux lignes seront jointes ! ![]() La condition de jointure est à faire sur les personnes et la restriction sur l'égalité des comptes : Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|||
|
00
|
|
|
#15 |
|
Invité de passage
![]() Inscription : avril 2009 Messages : 21 ![]() |
Ah oui zut c'est vrai...
ouf ça marche génial merci infiniment à tous (CinePhil, punkoff et tatayo) CinePhil merci encore pour votre idée ça m'enlève vraiment une épine du pied (dac o dac pr la "guerre des étoiles"^^ je ferais attention) bonne soirée |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com