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

Requêtes et SQL. Discussion :

Table resultant d'une requete sélection dans une jointure


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 84
    Points : 63
    Points
    63
    Par défaut Table resultant d'une requete sélection dans une jointure
    Bonjour,

    J'ai le problème suivant:

    J'ai une table Commandes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    IdClient, NCommande, MontantCommande
    1 | 12 | 120,00
    2 | 13 | 650,00
    3 | 14 | 1700,00
    2 | 15 | 1400,00
    2 | 16 | 250,00
    1 | 17 | 500,00
    3 | 18 | 700,00
    1 | 19 | 200,00
    4 | 20 | 1000,00
    donc j'ai quatres clients (1,2,3,4)

    le client 1 a passé 3 commandes de 120.00, 500.00 et 200.00 euros soit 820.00 au total.
    le client 2 a passé 3 commandes de 650.00,1400.00 et 250.00 euros soit 2300.00 au total.
    le client 3 a passé 2 commandes de 1700.00 et 700.00 euros soit 2400.00 au total.
    le client 4 a passé une seule commande de 1000.00 euros.

    J'ai une autre table Clients qui a la forme suivante:
    idClient, Nom, Adresse, montantTotalDesCommandes

    les 3 premiers champs sont remplis (idClient, Nom, Adresse).
    le champ montantTotalDesCommandes est vide.

    ma question est:
    comment remplir le champ montantTotalDesCommandes de la table Clients sans passer par une table intermidiaire dans laquelle il y a idClient et montantTotalDesCommandes, ensuite faire une jointure entre cette table et la table Clients?

    Je cherche une requete SQL sous forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE Clients INNER JOIN (SELECT idClient, SUM(MontantCommande) AS MTC FROM Commandes) ON Clients.idClient = quelqueChose qui fait référence à idClient de la table Commandes SET Clients.montantTotalDesCommandes = quelquechose qui fait référence au champ calculé MTC.
    donc une requete SQL qui utilise une table généré temporairement par une requete SELECT dans une JOINTURE (INNER JOIN).

    Je ne sais pas si c'est possible sous MS ACCESS 2003.

    Merci

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE client SET client.total = DSum("mt","matable","idclient = " & [idclient]);
    Elle est pas belle la vie ?

  3. #3
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Je ne pense pas qu'il soit nécessaire de les mettre dans un table une requête suffit.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT Table2.Id, Table1.IdClient, Count(Table1.Commande) AS CountOfCommande, Sum(Table1.Montant) AS SumOfMontant
    FROM Table1 INNER JOIN Table2 ON Table1.IdClient = Table2.Id
    GROUP BY Table2.Id, Table1.IdClient;

    Ou encore

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Table1.IdClient, Count(Table1.Commande) AS CountOfCommande, Sum(Table1.Montant) AS SumOfMontant
    FROM Table1
    GROUP BY Table1.IdClient;

    Avec table1 qui devrait être le nom de ta table.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. extraire le jour dans une requete sql dans une colone de type date
    Par levasseur62 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 17/04/2011, 21h42
  2. Problème de sélection dans une requete
    Par formidable78 dans le forum IHM
    Réponses: 1
    Dernier message: 09/09/2008, 09h32
  3. Réponses: 3
    Dernier message: 13/04/2007, 11h02
  4. Importer valeur requete SQL dans une Requete
    Par qbihlmaier dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 21/03/2006, 14h24
  5. Affcecter une valeur NULL dans une requete paramétrée
    Par thiouwz2 dans le forum Bases de données
    Réponses: 7
    Dernier message: 05/11/2004, 15h02

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