Bonjour
J'ai une table Emprunts et une table Personnes.
Personne(NoPersonne, NomPersonne)
Emprunts(NoEmprunt, NoPersonne, DateEmprunt, DateRetour)
Si DateRetour = NULL ca veut dire que la personne a un emprunt et qu'elle ne l'a pas rendu. Donc elle a un emprunt en cours.
Ma question:
Je veux afficher pour chaque personne(meme ceux qui n'ont pas emprunte ou qu'ils ont emprunter et qu'ils ont deja rendu) le nombre total d'emprunt EN COURS.
Exemple:
Personnes(1, 'ABC');
Personnes(2, 'DEF');
Personnes(3, 'GHI');
Emprunts(1,1, '2006/03/12', '2006/04/20');
Emprunts(2,2, '2006/01/25', NULL);
Emprunts(2,2, '2006/02/01', '2006/02/18');
Reponse:
NoPersonne ------------------- Nombre de prets en cours
1 ------------------------------ 0
2 ------------------------------ 1
3 ------------------------------ 0
Or, voila j'ai essayer differente requete et je n'arrive pas a obtenir le numero de la personne lorsque cette derniere a deja emprunter et qu'elle a rendu et qu'elle n'a plus aucun pret en cours.(comme la personne 1).
Je travaille sur ORACLE 9. Mais ma requese doit etre entierement compatible avec les normes SQL.
Voici ma requete:
SELECT Personnes.NoPersonne, COUNT(Emprunts.NoEmprunt)
FROM Personnes FULL OUTER JOIN Emprunts ON Personnes.NoPersonne = Emprunts.NoPersonne
WHERE Emprunts.dateRetour IS NULL
GROUP BY Personne.NoPersonne
et le resultat que j'obtient:
NoPersonne ------------------- Nombre de prets en cours
2 ------------------------------ 1
3 ------------------------------ 0
MERCI, de me repondre
Partager