Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1489 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  requete SQL qui ne donne pas le bon resultat

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

requete SQL qui ne donne pas le bon resultat

n°2051434
siho1990
Posté le 24-01-2011 à 15:38:44  profilanswer
 

Bonjour a tous,  :hello:  
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: select r.personne from retard r where exists (select e.personne from emprunt e);
 
Je voudrais savoir comment corriger ma requete pour qu'elle me donne le bon résultat :??:  :??:  
 
Help!!! ça fait longtemps que je sèche dessus :(  :??:  :(  
 
Merci beaucoup a ceux qui prendront la peine de me répondre :)

mood
Publicité
Posté le 24-01-2011 à 15:38:44  profilanswer
 

n°2051469
Oliiii
Posté le 24-01-2011 à 16:39:20  profilanswer
 

Voila ce qui devrai te retourner le bon résultat (j'avoue ne pas avoir testé tout a fond):

Code :
  1. SELECT a.Personne
  2. FROM @Emprunt a
  3.     LEFT JOIN (
  4.     SELECT a.Personne
  5.     FROM @Emprunt a
  6.         LEFT JOIN @Retour b ON b.Personne = a.Personne AND b.livre = a.livre AND b.dateEmprunt = a.dateEmprunt
  7.     WHERE b.Personne IS NULL
  8.     GROUP BY a.Personne
  9.     ) b ON b.Personne = a.Personne
  10. WHERE b.Personne IS NULL
  11. GROUP BY a.Personne


 
En gros tu selectionnes toutes les personnes qui ont ete au moins une fois a l'heure et tu ne prends que ceux qui restent (qui n'ont forcément jamais ete a l'heure).

n°2051476
siho1990
Posté le 24-01-2011 à 16:50:35  profilanswer
 

Merci Oliiii mais je viens de tester ce que tu viens de poster ça me sort une erreur pour le join
 
De plus je ne comprend pas très bien pourquoi tu as eu recours aux jointures LEFT JOIN au lieu des jointures internes "normales"
 
merci

n°2051483
mrbebert
Posté le 24-01-2011 à 17:53:16  profilanswer
 

Bizarre le modèle de données :heink:  
On peut tout faire avec la table Emprunt(Personne, livre, dateEmprunt,DateRetourPrevue, DateRetourEffective)
 
Ceux qui ont rendu au moins une fois un livre à temps :
select distinct Personne
from Emprunt
where DateRetourPrevue >= DateRetourEffective
 
Donc :
select distinct Personne from Emprunt
where Personne not in (
  select distinct Personne
  from Emprunt
  where DateRetourPrevue >= DateRetourEffective
)


---------------
Doucement le matin, pas trop vite le soir.
n°2051484
siho1990
Posté le 24-01-2011 à 18:05:40  profilanswer
 

ouai merci beaucoup mrbebert ça marche ^^
 
bonne soirée


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  requete SQL qui ne donne pas le bon resultat

 

Sujets relatifs
Convertir le résultat d'une requête SQL en fichier excelAfficher le resultat d'une requête SQL (VBA access)
[Perl] Récupérer le résultat d'une requète SQL[Builder 6]récpere le résultat d'une requête SQL d'un composant TQuery
[Oracle 9i]Export résultat de requête SQL vers fichier XML?[Résolu][SQL]Résultat d'une requete dans variable.
[RESOLU] Récupérer résultat d'1 requête SQL dans 1 script bourne shellImprimer le resultat d'une requete SQL contenu dans un rowsource
Un variable dans le resultat d'une requete SQLmettre le résultat d'une requete SQL dans un fichier Excel?
Plus de sujets relatifs à : requete SQL qui ne donne pas le bon resultat


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR