|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 6 ![]() |
bonjour,
voilà mon probleme je voudrais à partir de 3 tables client (contient les données clients) achat (liste des achats par ID client) cout (prix de chaque article) Voila ce que je voudrais faire -> dans le meilleur cas une liste de chaque client qui contiendrais 1) le nom 2) le total des achats fait par ce client 3) le nombre de produits acheté -> au pire le total des achat fait par 1 client... voici les tables client: id,nom,societe,info..... achat: id_client,id_achat.... cout: id_achat,prix... les prix sont des entiers (pour par exemple 5,6€ nous avons 560 (560 centimes d'euros) merci d avance |
|
|
00
|
|
|
#2 | ||
|
Membre éprouvé
![]() Inscription : mai 2006 Messages : 349 ![]() |
Alors comme ça, au débotté et sans vérification (j'ai pas moyen de tester) :
Code :
|
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 6 ![]() |
merci, mais
le ptit soucis c est que la base fait plus de 5000 entrée donc... ca plante... y a t il un autre moyen detourné enfin je sais pas |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Inscription : mai 2006 Messages : 139 ![]() |
A priori, si ta table est trop grosse, tu peux stocker dans la table client :
- le nombre d'articles achetés - le montant dépensé Quand un client fait une commande, tu mets à jour automatiquement ces données. Tu n'as alors qu'une table à interroger. Après, il faut être certain que tu gères bien la mise à jour des champs récapitulatifs. Pour cela, tu peux recourir à des triggers (si ta version de Mysql les supporte). |
|
|
00
|
|
|
#5 | |
|
Membre chevronné
![]() Inscription : février 2003 Messages : 643 ![]() |
Citation:
5000 entrées....je ne trouve pas que ce soit énorme.... |
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 6 ![]() |
Server mysql 5.2 falcon
Obligation des tables donc pas possible de rajouter un champs ou autre... elles doivent rester tel qu'elle sont Pour le "plante" avec les +5000 entrée je dirais plutot ca freeze.... et ca ne semble pas faire d action j utilise navicat et... "processing" mais rien d autre, et meme après 10 minutes toujours rien... meme "Time out" donc.... Ce qu'il faudrait exactement c est que j obtienne une liste de chaque client avec le total de leur achat fait exemple nom_client total_achat blabla 5464 euros merci |
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Inscription : février 2006 Messages : 953 ![]() |
Je ne connais pas bien falcon, mais pour qu'une requête aussi simple pédale comme ça avec 5000 pauvres entrées... elles sont bien évidemment indexées tes tables... ?
Si ce sont 5000 clients avec beaucoup d'achats (mais alors pour tenir plus de 10 minutes vraiment colossalement beaucoup), il faudrait essayer pour un seul client et voir le temps que ça met. Et il y a la possibilité de faire ça client par client... mais ça ne devrait pas être aussi lent. Sinon à noter que l'on parle d'une version de mysql pas vraiment mûre
|
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 6 ![]() |
je pense que je vais mettre un LIMIT ou un where avec le client 1 pour tester, car je comprends pas non plus pourquoi ca pédale comme ca
mais pour donnée un ordre d'idée 1 client entre 5 et 200 produit unique (je pense que ca dois pas aller au dela) environ 5000 prix Je crois avoir compris pourquoi ca pédale... je crois que c est simplement du au fait que 1 produit peut avoir 10 vendeurs different ce qui fait que si j ai 100 produit, vendu par 10 vendeur, ca donne 1000 reference prix Donc je dois faire une selection de produit UNIQUE dans la grille comment avoir une selection sur la table3 tel que A (id vendeur) B (id produit) C (prix produit) en ayant que B et C unique en ne prenant pas en compte le vendeur et en gardant uniquement le premier prix trouvé exemple si id produit = 5000 et que le prix de "5000" est de 10euros, mais que un vendeur le vends 8 euros je voudrais uniquement voir le 10 euros en fait cette table contient les references des vendeurs mais les prix sont toujours les premiers trouvé pour les clients, car les derniers sont la uniquement pour les cas spéciaux et j ai une table pour ces clients là |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com