Requête avec jointure externe, count et where
Fermé
prince25
Messages postés
6
Date d'inscription
dimanche 18 mai 2008
Statut
Membre
Dernière intervention
26 décembre 2011
-
23 déc. 2011 à 20:07
Prince25 - 28 déc. 2011 à 16:19
Prince25 - 28 déc. 2011 à 16:19
A voir également:
- Requête avec jointure externe, count et where
- Chkdsk disque dur externe - Guide
- Brancher lecteur dvd externe sur tv en usb - Forum Lecteurs et supports vidéo
- Batterie externe clignote ne charge pas - Forum Mobile
- Peut on brancher un lecteur cd externe sur une voiture ✓ - Forum Autoradio
- Ram externe - Forum Matériel & Système
2 réponses
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
84
26 déc. 2011 à 16:53
26 déc. 2011 à 16:53
Salut,
Essayes de nous montrer les dates de début d'archive pour tes lignes de résultats (y compris les 0)
Essayes de nous montrer les dates de début d'archive pour tes lignes de résultats (y compris les 0)
prince25
Messages postés
6
Date d'inscription
dimanche 18 mai 2008
Statut
Membre
Dernière intervention
26 décembre 2011
1
26 déc. 2011 à 19:51
26 déc. 2011 à 19:51
Salut Melooo et merci de me répondre,
Je pense que le plus simple est d'afficher ma table Emprunte_archive en marquant celles qui vérifient la condition du WHERE :
Resultat :
id_lecteur | id_exemplaire | date_debut_archive | date_fin_archive | nom_lecteur | prenom_lecteur | id_type_lecteur
------------+---------------+--------------------+------------------+-------------+----------------+-----------------
3 | 1 | 2011-04-21 | 2011-05-10 | Farkli | Raphael | 2
2 | 3 | 2011-08-03 | 2011-08-29 | Dupond | Tony | 1
5 | 4 | 2011-09-14 | 2011-10-06 | Bellabouvier | Matthieu | 3 ===> VERIFIE LE WHERE
4 | 6 | 2011-10-02 | 2011-10-24 | Giersh | Annabelle | 2 ===> VERIFIE LE WHERE
4 | 7 | 2011-12-22 | 2012-01-02 | Giersh | Annabelle | 2 ===> VERIFIE LE WHERE
(5 rows)
Je pense que le plus simple est d'afficher ma table Emprunte_archive en marquant celles qui vérifient la condition du WHERE :
SELECT * FROM Emprunte_archive NATURAL JOIN Lecteur;
Resultat :
id_lecteur | id_exemplaire | date_debut_archive | date_fin_archive | nom_lecteur | prenom_lecteur | id_type_lecteur
------------+---------------+--------------------+------------------+-------------+----------------+-----------------
3 | 1 | 2011-04-21 | 2011-05-10 | Farkli | Raphael | 2
2 | 3 | 2011-08-03 | 2011-08-29 | Dupond | Tony | 1
5 | 4 | 2011-09-14 | 2011-10-06 | Bellabouvier | Matthieu | 3 ===> VERIFIE LE WHERE
4 | 6 | 2011-10-02 | 2011-10-24 | Giersh | Annabelle | 2 ===> VERIFIE LE WHERE
4 | 7 | 2011-12-22 | 2012-01-02 | Giersh | Annabelle | 2 ===> VERIFIE LE WHERE
(5 rows)
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
84
27 déc. 2011 à 08:37
27 déc. 2011 à 08:37
Dans ta requête SQL tu as ca :
Ce qui veut dire que tu veux seulement les lecteurs avec une date d'archive supérieur au 10 septembre 2011...
Donc ta requête te sort :
Car ce sont les seuls lecteurs qui remplissent correctement ta clause where.
Donc le résultat de ta requête est tout à fait normal...
WHERE date_debut_archive > '2011-09-10'
Ce qui veut dire que tu veux seulement les lecteurs avec une date d'archive supérieur au 10 septembre 2011...
Donc ta requête te sort :
5 | 4 | 2011-09-14 | 2011-10-06 | Bellabouvier | Matthieu | 3 ===> VERIFIE LE WHERE 4 | 6 | 2011-10-02 | 2011-10-24 | Giersh | Annabelle | 2 ===> VERIFIE LE WHERE
Car ce sont les seuls lecteurs qui remplissent correctement ta clause where.
Donc le résultat de ta requête est tout à fait normal...
Ah ouai d'accord mais le soucis c'est que magré mon WHERE, j'aimerais qu'il m'affiche quand même tous les lecteurs (avec un nombre d'emprunt égal à 0 si cas échéant)
Un truc qui ressemblerait à ca:
id_lecteur | nom_lecteur | prenom_lecteur | Nb
------------+-------------+----------------+----
2 | Dupond | Tony | 0
4 | Giersh | Annabelle | 2
1 | Moine | Jimmy | 0
5 | Bellabouvier | Matthieu | 1
3 | Farkli | Raphael | 0
Saurait-tu comment je pourrais faire ça ?
Un truc qui ressemblerait à ca:
id_lecteur | nom_lecteur | prenom_lecteur | Nb
------------+-------------+----------------+----
2 | Dupond | Tony | 0
4 | Giersh | Annabelle | 2
1 | Moine | Jimmy | 0
5 | Bellabouvier | Matthieu | 1
3 | Farkli | Raphael | 0
Saurait-tu comment je pourrais faire ça ?
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
84
28 déc. 2011 à 08:39
28 déc. 2011 à 08:39
Dis moi exactement l'intitulé de la requête, parce que c'est pas clair la ?
Que veux tu ?
Que veux tu ?
Intitulé de la requête : Afficher TOUS LES LECTEURS avec, pour chacun, le nombre d'emprunt supérieur à une date donnée.
Comme j'essaye de l'expliquer, j'aimerais que TOUS les lecteurs s'affichent, même s'ils n'ont fait aucun emprunt supérieur à la date donnée.
J'espère que c'est assez clair du coup... :P
Comme j'essaye de l'expliquer, j'aimerais que TOUS les lecteurs s'affichent, même s'ils n'ont fait aucun emprunt supérieur à la date donnée.
J'espère que c'est assez clair du coup... :P
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
84
28 déc. 2011 à 14:27
28 déc. 2011 à 14:27
Euh je verrais un truc comme ca :
mais vraiment pas sur du résultat
SELECT l.id_lecteur, nom_lecteur, prenom_lecteur, COUNT(id_exemplaire) "Nb" FROM LECTEUR l LEFT OUTER JOIN Emprunte_archive ea ON l.id_lecteur = ea.id_lecteur WHERE date_debut_archive > '2011-09-10' OR nombre_emprunt >= 0 GROUP BY l.id_lecteur, nom_lecteur, prenom_lecteur;
mais vraiment pas sur du résultat