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 :

Sélection d'enregistrements - MAX(SUM())


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Sélection d'enregistrements - MAX(SUM())
    Bonjour,

    En premier lieu, voici la disposition de mes 2 tables

    tableClient

    • idClient
    • nomClient
    • telephoneClient
    • villeClient
    tableVente

    • idVente
    • idClient
    • totalVente

    Voici sur le problème auquel je planche. J'aimerais pouvoir pour chacune des villes, sélectionner le client ayant la somme de totalVente le plus élevé. Ce qui me permettrais, pour chacune des ville, de savoir qui est mon client le plus important. Je crois qu'une fonction du genre MAX(SUM()) pourrait m'aider, mais elle ne semble pas fonctionner sous Access.

    Je vous remerci pour votre aide

    Max

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 666
    Points : 34 374
    Points
    34 374
    Par défaut
    Bonjour NightWulf,
    bienvenue sur DVP
    tu peux imbriquer tes requêtes les unes dans les autres pour cela.
    As-tu déjà une début de SQL à nous proposer, pourqu'on se base sur ce que tu as déjà fait ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT *  FROM 
    (SELECT villeClient, MAX(SOMME) as MAXI  FROM
    (SELECT idClientVente, SUM(totalVente) AS SOMME  FROM tableVente GROUP BY idClientVente) AS REQ1, tableClient
    WHERE idClient = idClientVente GROUP BY villeClient) as RE2
    Je suis bloqué avec cette requête. Je sais que mon premier SELECT ne sert à rien, je voulais avec lui, aller chercher les informations des clients. Mais le SELECT avec le MAX(SOMME) m'empeche de récupérer le "idClientVente"

    Merci Beaucoup

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 119
    Points : 98
    Points
    98
    Par défaut
    Salut, voici un topic qui parle de requêtes concernant une selection max/sum.
    Peut-être que tu y trouvera ton bonheur...

    http://www.developpez.net/forums/sho...d.php?t=356092

  5. #5
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut à tous,

    Nightwulf, voici une requete qui fonctionne avec la structure de tes tables:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select t5.villeClient, t5.idClient,
    (select sum(t6.totalVente) from tableClient t7 inner join tableVente t6 on t6.idClient=t7.idClient where t6.idClient=t5.idClient) as sumVente
    from tableClient t5
    where (select max(sumVente) as maxSumVente from
    (select t1.villeClient, sum(t2.totalVente) as sumVente, t1.idClient from tableClient t1 inner join tableVente t2 on t1.idClient=t2.idClient group by t1.villeClient, t1.idClient) as t4
    where t4.villeClient=t5.villeClient)=(select sum(t6.totalVente) from tableClient t7 inner join tableVente t6 on t6.idClient=t7.idClient where t6.idClient=t5.idClient)
    je ne suis pas parvenu à faire plus simple.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci Mat777 pour le lien, je n'avais pas trouvé ce thread durant mes recherches.

    vodiem, merci beaucoup pour la requête, cela dépasse largement les connaissances que j'ai, mais elle fonctionne parfaitement bien !

    Merci Beaucoup

    Maxime

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

Discussions similaires

  1. Pb de sélection d'enregistrement
    Par fbu78 dans le forum Access
    Réponses: 1
    Dernier message: 05/05/2006, 00h16
  2. [CR9][SQL Server] forcer la sélection à 5 enregistrements
    Par __fabrice dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 02/11/2005, 12h20
  3. Sélection d'enregistrement parmis plusieurs identiques
    Par monnoliv dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 24/09/2005, 16h32
  4. sélection d'un max parmi plusieurs champs
    Par invitésuprise dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/08/2005, 14h49
  5. Réponses: 7
    Dernier message: 19/10/2004, 23h40

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