un script de statistique

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

vérité
Nouveau WRInaute
 
Messages: 13
Inscription: Mar Mai 15, 2007 22:25

un script de statistique

Message le Mar Juin 19, 2007 9:24

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é
WRInaute impliqué
 
Messages: 484
Inscription: Jeu Jan 08, 2004 16:15

Message le Mar Juin 19, 2007 10:17

Essaies ça :
Code: Tout sélectionner
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
 
Messages: 13
Inscription: Mar Mai 15, 2007 22:25

Message le Mar Juin 19, 2007 10:47

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
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Mar Juin 19, 2007 10:51

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
 
Messages: 13
Inscription: Mar Mai 15, 2007 22:25

Message le Mar Juin 19, 2007 11:06

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é
WRInaute impliqué
 
Messages: 484
Inscription: Jeu Jan 08, 2004 16:15

Message le Mar Juin 19, 2007 11:06

Remercie Yoyos, je sais pas si j'aurais trouvé cette année sinon :oops: :
Code: Tout sélectionner
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
 
Messages: 13
Inscription: Mar Mai 15, 2007 22:25

Message le Mar Juin 19, 2007 11:12

merci tout de même

vérité
Nouveau WRInaute
 
Messages: 13
Inscription: Mar Mai 15, 2007 22:25

Message le Mar Juin 19, 2007 23:23

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
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Mer Juin 20, 2007 9:37

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
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Mer Juin 20, 2007 10:17

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: Tout sélectionner
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: Tout sélectionner
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: Tout sélectionner
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 ^^


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités