|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
vérité Nouveau WRInaute
Inscrit le: 15 Mai 2007 Messages: 13
|
Posté le : Mar Juin 19, 2007 10:24 Sujet du message: un script de statistique |
|
|
j'aimerai faire un script de statistique qui me donne le nombre de clients qui ont prêté au moins deux livres. voici la table
pret
id INT
client_id INT
livre_id INT
status (' pret', ' libre')
client
id INT (correspond à client_id dans la table pret
livre
id INT (correspond à livre_id dans la table pret
voilà le probleme qui se pose: un client peut prêter plusieurs livres
dans la table pret le client_id nr1 à lui seul a prêter 3 livres. comment faire une requete qui me donne ceci :
client_id nr1 3livres
client_id nr2 1livres
..
etc
et qu'à la fin
j'ai nbre total des clients= x
nbre des clients qui ont prêter au moins 1 livre= Y
nbre nbre des clients qui ont prêter au moins 2 livres= Z
la requte pour le nbre total des clients c'est facile je l'ai déjà fait.
mysql_query("SELECT COUNT (*)as nbre_total FROM client) et ca marche.
pour le reste j'arrive pas.
Merci de bien vouloir m'aider. |
|
| |
|
 |
chtipepere WRInaute impliqué

Inscrit le: 08 Jan 2004 Messages: 466
|
Posté le : Mar Juin 19, 2007 11:17 Sujet du message: un script de statistique |
|
|
Essaies ça :
| Code: |
SELECT
COUNT(livre_id) AS nb_livres,
client_id
FROM pret
GROUP BY client_id
ORDER BY client_id |
Ca donne quoi? |
|
| |
|
 |
vérité Nouveau WRInaute
Inscrit le: 15 Mai 2007 Messages: 13
|
Posté le : Mar Juin 19, 2007 11:47 Sujet du message: un script de statistique |
|
|
Dans la table pret il ya sur 5 clients 4 qui ont prêté minimum un livre
1client a preter 2 livres et les autres un seul
ta requete me donne 2 .
ce que je veux c'est ceci
nbre de client qui ont preté au moins un ivre donc 4
nbre de client qui ont preté au moin 2 livres donc 1
nbre de livre emprunter
merci de ton aide |
|
| |
|
 |
YoyoS WRInaute accro

Inscrit le: 14 Sep 2006 Messages: 2263
|
Posté le : Mar Juin 19, 2007 11:51 Sujet du message: un script de statistique |
|
|
Tu peux rajouter un HAVING count(livre_id) > 1 pour n'avoir que ceux qui ont emprunté au moins 2 livres  |
|
| |
|
 |
vérité Nouveau WRInaute
Inscrit le: 15 Mai 2007 Messages: 13
|
Posté le : Mar Juin 19, 2007 12:06 Sujet du message: un script de statistique |
|
|
| merci je vais d'abord me debrouiller avec ce que tu m'as donné et vers 14heures je te dirai si ca a marché ou pas. tu sera là online à ou avant 14h? |
|
| |
|
 |
chtipepere WRInaute impliqué

Inscrit le: 08 Jan 2004 Messages: 466
|
Posté le : Mar Juin 19, 2007 12:06 Sujet du message: un script de statistique |
|
|
Remercie Yoyos, je sais pas si j'aurais trouvé cette année sinon :
| Code: |
SELECT
COUNT(livre_id) as nb_livres,
client_id
FROM pret
GROUP BY client_id HAVING COUNT(livre_id) > 2
ORDER BY nb_livres DESC |
Edit : Trop tard... |
|
| |
|
 |
vérité Nouveau WRInaute
Inscrit le: 15 Mai 2007 Messages: 13
|
Posté le : Mar Juin 19, 2007 12:12 Sujet du message: un script de statistique |
|
|
| merci tout de même |
|
| |
|
 |
vérité Nouveau WRInaute
Inscrit le: 15 Mai 2007 Messages: 13
|
Posté le : Mer Juin 20, 2007 0:23 Sujet du message: un script de statistique |
|
|
salut tout le monde, je reviens à la charge.
j'ai fait la requête suivante :
SELECT
COUNT(livre_id) as nb_livres,
client_id
FROM pret
GROUP BY client_id HAVING COUNT(livre_id) > 2
ORDER BY nb_livres DESC
et voici le resulat. La requête trouve 4 fois nbre livre comment faire pour obtenir 4 au lieu de ce j'ai.
nbre livre2
nbre livre1
nbre livre1
nbre livre1 |
|
| |
|
 |
YoyoS WRInaute accro

Inscrit le: 14 Sep 2006 Messages: 2263
|
Posté le : Mer Juin 20, 2007 10:37 Sujet du message: un script de statistique |
|
|
Je vais voir mais tes explications sont pas très claires
Et pourquoi mets-tu HAVING COUNT(livre_id) > 2 alors que tu veux avoir ceux qui ont au moins 2 livres, tu n'aurais que ceux qui auront + de 2 livres comme ça. |
|
| |
|
 |
YoyoS WRInaute accro

Inscrit le: 14 Sep 2006 Messages: 2263
|
Posté le : Mer Juin 20, 2007 11:17 Sujet du message: un script de statistique |
|
|
| vérité a écrit: |
voilà le probleme qui se pose: un client peut prêter plusieurs livres
dans la table pret le client_id nr1 à lui seul a prêter 3 livres. comment faire une requete qui me donne ceci :
client_id nr1 3livres
client_id nr2 1livres
..
|
Requete 1:
| Code: |
SELECT client_id, COUNT(livre_id) as nb_livres
FROM pret
GROUP BY client_id
HAVING COUNT(livre_id) >= 2
ORDER BY nb_livres DESC
|
| vérité a écrit: |
et qu'à la fin
j'ai nbre total des clients= x
nbre des clients qui ont prêté au moins 1 livre= Y
nbre nbre des clients qui ont prêter au moins 2 livres= Z
|
Requête (pour le nb de client qui ont prêté au moins un livre)
| Code: |
SELECT count(C.id) as nb_clients
FROM client AS C,pret AS P
WHERE C.id = P.client_id
GROUP by C.id [color=red]Je suis pas sure si c'est obligatoire[/color]
HAVING count(P.livre_id) >= 1 ;
|
Requête (pour le nb de client qui ont prêté au moins deux livres)
| Code: |
SELECT count(C.id) as nb_clients
FROM client AS C,pret AS P
WHERE C.id = P.client_id
GROUP by C.id [color=red]Je suis pas sure si c'est obligatoire[/color]
HAVING count(P.livre_id) > 1 ;
|
Voila, j'ai ptet fait des erreurs, je n'ai rien pour tester et ça fait pas mal de temps que j'en ai pu fait ^^ |
|
| |
|
 |
| |
|
|