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 :

Calcul de champs dans requête Access [AC-2019]


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Mars 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 126
    Points : 96
    Points
    96
    Par défaut Calcul de champs dans requête Access
    Bonjour,

    pourriez-vous m'aider à résoudre le problème suivant.
    Dans ma base de données (pièce jointe), j'ai créé une requête dans laquelle, j'aimerais, si c'est possible pouvoir ajouter des champs calculés qui seraient:
    - le nombre total des quantités facturées (même chiffre sur chaque ligne) (350+289+413+... =7848)
    - le nombre de clients distincts (même chiffre sur chaque ligne) (4)

    Je vous mets un fichier Excel avec le résultat voulu.

    Merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    il faut ajouter 2 champs dans ta requête avec les expressions suivantes:
    - pour le total quantité:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    TOTAL FACT: (select sum(QTE_FACTUREE) from Vente INNER JOIN PrixRevient ON Vente.ARTICLE = PrixRevient.[Étiquettes de lignes])
    - pour le nombre de clients distincts:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    CLIENT DISTINCT: (select count (*) from (select  distinct [NOM_CLIENT_FAC] from vente INNER JOIN PrixRevient ON Vente.ARTICLE = PrixRevient.[Étiquettes de lignes]))
    le but étant d'appliquer les mêmes contraintes que dans la requête principale (ici, uniquement la jointure avec la table PrixRevient), ce qui donne en SQL:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Vente.NOM_CLIENT_FAC, Vente.QTE_FACTUREE, Vente.MONTANT, Vente.PU, PrixRevient.[COUT DE REVIENT],
     (select sum(QTE_FACTUREE) from Vente INNER JOIN PrixRevient ON Vente.ARTICLE = PrixRevient.[Étiquettes de lignes]) AS [TOTAL FACT],
     (select count (*) from (select  distinct [NOM_CLIENT_FAC] from vente INNER JOIN PrixRevient ON Vente.ARTICLE = PrixRevient.[Étiquettes de lignes])) AS [CLIENT DISTINCT]
    FROM Vente INNER JOIN PrixRevient ON Vente.ARTICLE = PrixRevient.[Étiquettes de lignes];
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre régulier
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Mars 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 126
    Points : 96
    Points
    96
    Par défaut
    Bonjour,

    Merci énormément "tee_grandbois", c'est exactement ce que je voulais :-)

    Puis-je abuser un peu, il me manque une donnée à calculer.
    La moyenne de rentabilité comme dans l'exemple du fichier Excel en pièce jointe.

    Merci
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    Puis-je abuser un peu, il me manque une donnée à calculer.
    non, pas du tout,nous sommes là pour aider mais nous ne sommes pas des convertisseurs automatiques de formules Excel, la moindre des choses serait à minima de donner la formule dans un langage compréhensible avec un exemple à l'appui
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Alors, il me semble qu'Access repose sur la théorie des ensembles (revoir les fondamentaux de l'analyse conceptuelle), alors qu'Excel c'est plus tôt cartésien.
    En plus SOMMEPROD() d'Excel ne doit pas avoir d'équivalent sur Access.
    Une solution créer une 1ère req pour calculer row après row les rapports montant/qtefacturee et la différence rapports/prixrevient. Et après ...
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  6. #6
    Membre régulier
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Mars 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 126
    Points : 96
    Points
    96
    Par défaut
    Bonjour,

    merci pour vos réponse et désolé de vous avoir pris pour des "convertisseurs automatiques de formules Excel".

    Je voulais simplement avoir un peu d'aide.

    Enfin soit…

    Encore merci.

    Problème résolu

  7. #7
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Nous sommes tous des bénévoles, ayant ou non encore une activité. Nous voulons bien aider, mais ce n'est pas qu'unidirectionnel !
    Avec une req on obtient un résultat probant en utilisant les fct de domaine.
    Notre communauté est une communauté de partage, il aurait été intéressant, pour d'autres qui voudraient faire les mêmes calculs, que vous puissiez partager votre solution.

    EDIT 20190810 13:41
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT DISTINCT Table5.numcli, DCount("numcli","Table5","[numcli] = '" & [numcli] & "'") AS nbcli, DSum("montantfact","Table5","[numcli] = '" & [numcli] & "'") AS totmontant, DSum("qtefact","Table5","[numcli] = '" & [numcli] & "'") AS totqte, DSum("coutrv","Table5","[numcli] = '" & [numcli] & "'") AS totcout, (DSum("montantfact","Table5","[numcli] = '" & [numcli] & "'")/DSum("qtefact","Table5","[numcli] = '" & [numcli] & "'"))-(DSum("coutrv","Table5","[numcli] = '" & [numcli] & "'")/DCount("numcli","Table5","[numcli] = '" & [numcli] & "'")) AS avgrentab
    FROM Table5;
    Images attachées Images attachées  
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

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

Discussions similaires

  1. [AC-2007] Requête : Calculer 2 champs dans un troisième
    Par Gregk84 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 17/01/2012, 09h21
  2. [AC-2007] Calcul d’1 champ dans une requête SQL selon différents critères
    Par rch05 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 28/04/2011, 16h44
  3. [DEBUTANT] Probelme pour calculer 2 champs dans un etat
    Par The_freeman dans le forum Access
    Réponses: 1
    Dernier message: 18/06/2006, 18h12
  4. [Access 2002] Calcul de champ dans un formulaire !
    Par Amanck dans le forum Access
    Réponses: 6
    Dernier message: 29/05/2006, 15h22
  5. Arrondissement dans requête access
    Par steps5ive dans le forum Access
    Réponses: 1
    Dernier message: 08/12/2005, 17h13

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