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 :

[Débutant] Cumul dans une requête


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [Résolu][Débutant] Cumul dans une requête
    Bonjour à tous, vous les maniacs du SQL !

    Ceci est mon premier post, et en premier lieu je vous remercie tous pour l'aide que j'ai déjà pu trouver ici en faisant des recherches.

    Voilà, je suis autodidacte débutant avec access. J'ai déjà pu concevoir quelques outils très sympas, et forcément je suis devenu accro !

    Trève de bavardages, mon problème me parait simple, mais j'ai cherché, recherché, essayé, et tout et tout et ça marche pas/je ne comprend pas. Je me suis arraché les cheveux, cogné la tête contre les murs, ça n'a rien donné non plus.

    Je cherche à cumuler (chronologiquement) les valeurs du champ Nb Prospects dans la requête ci dessous :



    J'ai cru comprendre que la fonction Dsum pourrait être la bonne, mais je ne comprend pas les explications que j'ai pu trouver pour la mettre en oeuvre...

    please help me !

    merci d'avance

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    voici une solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT T.[Actif depuis], T.[Nb Prospects], 
    (select sum([nb prospects]) from prospects where 
    [actif depuis] <= T.[actif depuis]) AS Cumul
    FROM prospects AS T
    ORDER BY T.[Actif depuis];
    cordialement,

    Philippe

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Hello,

    Merci beaucoup pour cette réponse. Alors je ne sais pas utiliser ce langage, mais j'ai essayé de créer une nouvelle requête en mode SQL (c'est bien ça?), et j'ai copié le code ci dessus dedans.

    J'ai remplacé les "T" par [Stat jour prospects 'actifs'] qui est le nom de la requête en image dans mon premier message. Ne sachant pas trop, j'ai aussi remplacé "prospects" de la même façon, car il n'y a rien qui s'appelle "prospects" dans la requête en question.

    résultat : dans la colonne 'cumul' pour chaque ligne s'affiche la valeur '12' soit le total, et non pas le cumul chronologique

    J'ai du vous donner trop peu d'infos, alors maintenant que j'ai trouvé le mode SQL, je vous sort le code de la requête de départ (celle en image plus haut).


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [Prospects 'actifs'].[Actif depuis], Count([Prospects 'actifs'].SIGLE) AS [Nb Prospects], "" AS Cumul
    FROM [Prospects 'actifs']
    GROUP BY [Prospects 'actifs'].[Actif depuis], "";
    Désolé de faire le boulet, mais je veux bien encore un p'tit coup de pouce

    PS : ça serait pas mal que je puisse avoir mon cumul dans la requête en question !

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour

    re-voici la requete adaptée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT T.[Actif depuis], Count(T.Sigle) AS [Nb Prospects],
     (select Count(sigle) from [Prospects 'actifs'] 
    where [actif depuis] <= T.[actif depuis]) AS Cumul
    FROM [Prospects 'actifs'] AS T
    GROUP BY T.[Actif depuis]
    ORDER BY T.[Actif depuis];
    T correspond a un alias de la table <Prospects 'actifs'> qui représente le nom de la table mais en plus court et il est nécessaire pour la sous-requete.

    Le nom de votre table et de votre requete ne sont pas dans le canon habituel, éviter les espaces, les <'>, etc...

    Ce n'est pas une requete performante, j'espère qu'il n'y a pas trop d'enregistrements sinon patience...

    Désolé de faire le boulet, mais je veux bien encore un p'tit coup de pouce
    ...le canon de la requete n'était pas bon !

    Cordialement,

    Philippe

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut


    ! MERCI !


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 cumulée dans une requête
    Par vthomas dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 28/02/2008, 18h18
  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. Problème de débutant dans une requête
    Par decour dans le forum Access
    Réponses: 7
    Dernier message: 14/10/2005, 14h17

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