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

Access Discussion :

Fonction Cumul dans une requête


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 88
    Points : 36
    Points
    36
    Par défaut Fonction Cumul dans une requête
    Bonjour

    je cherche à cumuler dans ma requête le nombre d'unités vendues. Ma requête et son résultat. malgré des recherches je n'y parvient pas. quelqu'un peut-il voler à mon secours? Merci d'avance
    Nom : Capture d'écran 2017-07-30 16.58.40.png
Affichages : 1525
Taille : 209,3 Ko
    Nom : Capture d'écran 2017-07-30 16.58.48.png
Affichages : 1051
Taille : 236,3 Ko

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Sauf erreur, ci-joint une première possibilité qui va ralentir la requête et ne sera donc utilisable que pour une table vente < ~1000 lignes...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT v.[Date vente],
           Sum([Détails ventes].[Unités vendue]) AS [SommeDeUnités vendue],
      (SELECT SUM([Unités vendue]) AS C
       FROM [Détails ventes]
       WHERE [N° vente] IN
           (SELECT [N° vente]
            FROM Ventes
            WHERE [Date Vente] <= V.[Date vente])) AS Cumul
    FROM Ventes AS v
    INNER JOIN [Détails ventes] ON v.[N° Vente] = [Détails ventes].[N° Vente]
    GROUP BY v.[Date vente]

  3. #3
    Invité
    Invité(e)
    Par défaut
    deuxième possibilité qui a l'avantage d'être plus rapide que la première mais la sous-requete enregistrée n'est pas visible dans l'interface Query by Example mais seulement en mode SQL (car liaison entre tables est >= et non =) :

    1ère requête à nommer "rCumulVentes"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SELECT v.[Date vente] AS LaDate,
           SUM(r.[CumulDate]) AS Cumul
    FROM
      (SELECT [Date vente]
       FROM Ventes
       GROUP BY [date vente]) AS V
    INNER JOIN
      (SELECT [Date Vente],
              Sum([Unités vendue]) AS CumulDate
       FROM ventes AS v
       INNER JOIN [Détails ventes] AS DV ON v.[N° vente] = dv.[N° vente]
       GROUP BY [Date vente]) AS R ON v.[Date vente] >= r.[Date vente]
    GROUP BY v.[date vente]
    Et la requête finale qui s'appuie sur la 1ère (celle-ci est visible dans le QBE) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT Ventes.[Date vente],
           Sum([Détails ventes].[Unités vendue]) AS [Somme Unités vendue],
           rCumulVentes.Cumul
    FROM (Ventes
          INNER JOIN rCumulVentes ON Ventes.[Date vente] = rCumulVentes.LaDate)
    INNER JOIN [Détails ventes] ON Ventes.[N° Vente] = [Détails ventes].[N° Vente]
    GROUP BY Ventes.[Date vente],
             rCumulVentes.Cumul

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 88
    Points : 36
    Points
    36
    Par défaut
    bonsoir

    merci de venir à l'aide, mais après avoir copier le code sql...je bute sur "sélectionner la source de données". J'ai encore besoin d'un peu d'aide!! Merci

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1) J'ai oublié un s à unités vendue dans les requêtes, merci de vérifier tous les noms de table et les noms des champs (espace, accent,...)
    2) Il ne faut pas créer les requetes par le type "sql direct", mais choisir le type "selection" puis affichage->sql et entrer le code sql

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 88
    Points : 36
    Points
    36
    Par défaut Requete cumul
    Bonjour

    Merci pour votre aide et j'ai pu arriver à faire fonctionner ma "Req cumul". Celle-ci lance s'appuie sur la "Req caisse financière entre date pour cumul" et le résultat est conforme si l'entre date est figé dans la requête. Si je remplace mes dates fixes par Entre[Date début] Et [Date fin] j'ai sur le cumul...Erreur! Merci encore de votre aide.

    Nom : Capture d'écran 2017-09-15 23.34.58.png
Affichages : 1031
Taille : 224,3 Ko

Discussions similaires

  1. utilisation de la fonction Partdate() dans une requête
    Par jm6570 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 01/02/2010, 11h55
  2. [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
  3. [Requête] Utilisation d'une fonction perso dans une requête
    Par Julien Dufour dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 16/03/2007, 09h53
  4. [ACCESS2002][fonction sum dans une requête]
    Par louroulou dans le forum Access
    Réponses: 1
    Dernier message: 14/06/2006, 09h26

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