IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

Récupérer des données sur 3 tables..


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Par défaut Récupérer des données sur 3 tables..
    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

  2. #2
    Membre chevronné
    Avatar de Schmorgluck
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 371
    Par défaut
    Alors comme ça, au débotté et sans vérification (j'ai pas moyen de tester) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT client.nom, sum(cout.prix), count(achat.id_achat)
    FROM client, achat, cout
    WHERE client.id_client=achat.id_client
    AND achat.id_achat=cout.id_achat
    GROUP BY client.id ;
    Je crois que ça devrait marcher.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Par défaut
    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

  4. #4
    Membre éprouvé
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Par défaut
    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).

  5. #5
    Membre émérite
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Par défaut
    le ptit soucis c est que la base fait plus de 5000 entrée donc...

    ca plante...
    comment ça "ça plante", c'est quoi le message d'erreur?
    5000 entrées....je ne trouve pas que ce soit énorme....

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Par défaut
    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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/08/2013, 17h24
  2. Récupérer des données sur pusieurs tables
    Par Nikimizi dans le forum Langage SQL
    Réponses: 6
    Dernier message: 31/05/2013, 14h29
  3. Réponses: 3
    Dernier message: 28/01/2007, 19h25
  4. récupérer des données sur une clef USB
    Par mullger dans le forum Périphériques
    Réponses: 6
    Dernier message: 25/09/2006, 18h38
  5. Récupérer des données sur une page HTML
    Par rupeni dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 18/11/2005, 17h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo