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 :

Somme cumulée dans une requête


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 8
    Points : 10
    Points
    10
    Par défaut Somme cumulée dans une requête
    Je cherche à créer une requête qui me permette de ne sortir que le TOP Clients.
    Problème : mon Top n'est ni un pourcentage, ni un nombre de lignes, mais une valeur fixe.
    Donc je dois afficher le CA mensuel pour chacun de ces clients jusqu'à un CA cumulé maxi de 50.000€
    On peut appeler la table matable, et les champs "Client" et "CA".
    Mon résultat doit afficher le client et son CA. La somme cumulée de mon résultat doit faire 50.000€

    Ca me semble tellement simple comme recherche que je m'énerve de ne pas trouver.
    Merci

    Virginie

  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 645
    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 645
    Points : 34 350
    Points
    34 350
    Par défaut
    salut,
    tu peux décomposer ton raisonnement comme ceci :
    - dans un premier temps tu peux faire un order by CA DESC
    - tu fais un SELECT de cette premiere partie, et tu poses cette fois-ci HAVING SUM(CA)<50000
    - tu combines la total en prenant tes champs Client et ce que tu veux avec...

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 8
    Points : 10
    Points
    10
    Par défaut OK sur le principe
    La logique ne me manque pas trop... mais en étant autodidacte, souvent je manque de pratique ou de temps pour trouver les solutions... ou savoir les appliquer.
    Je comprends ce que tu me proposes mais je ne sais pas le faire
    J'ai vu sur d'autres post la possibilité de combiner un select avec un autre, style sous-requête, mais il me manque des billes pour le faire.
    J'ai écumé hier soir toute l'aide en ligne Access pour obtenir des éléments mais je pense que mes lacunes m'empêchent d'appliquer ce que je comprends.
    Connais-tu un didacticiel qui me permette de me remettre en ligne ?
    Entre les fichiers trop simplistes et ceux qui sont incompréhensibles je commence à perdre patience.
    Si tu as - tant mieux. Sinon, merci d'avoir répondu à mon post et je continue ma quête du Graal.

    A+
    Virginie

  4. #4
    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 645
    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 645
    Points : 34 350
    Points
    34 350
    Par défaut
    exemple, en utilisant le VBA certes, mais que j'ai sous la main ^^ :
    - je pars du principe que j'ai ma table final dans T_FINAL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim i As Integer
    Dim result As Integer
    DoCmd.SetWarnings False
    i = 0
    result = 0
    Do Until result > 50000
        i = i + 1
        DoCmd.RunSQL "DELETE * FROM T_FINAL"
        DoCmd.RunSQL "SELECT Top " & i & " Client, CA INTO T_FINAL FROM Table1 ORDER BY CA DESC;"
        result = DLookup("SUM(CA)", "T_FINAL")
    Loop

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

Discussions similaires

  1. [AC-2003] Cumul dans une requête
    Par C15nantes dans le forum VBA Access
    Réponses: 1
    Dernier message: 20/03/2015, 17h46
  2. cumul dans une requête
    Par aya02 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/07/2010, 10h52
  3. Somme sur conditions imbriquée dans une requête
    Par aleximan dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 25/01/2008, 18h05
  4. Problème de cumul dans une requête SQL
    Par soso78 dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 13/09/2007, 05h56
  5. [Débutant] Cumul dans une requête
    Par waiwai dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 11/06/2007, 10h19

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