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 :

Requete SOMME avec condition 'non vide' sur un autre champ [AC-2010]


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2012
    Messages : 26
    Points : 13
    Points
    13
    Par défaut Requete SOMME avec condition 'non vide' sur un autre champ
    Bonsoir à tous,

    Débutant sur Access, j'éprouve les pires difficultés sur une requête.

    J'ai besoin d'effectuer la somme des valeurs d'un champ uniquement si un autre champ est non vide.

    En clair, dans une table, j'ai un champ [NumValide] qui enregistre le paiement de facture et j'ai un champ [MontantFac] pour le montant. Je souhaite avec une requete, avoir la somme du champ [MontantFac] si une donnée figure dans le champ (NumValide] de cet enregistrement. Le type de donnée dans le champ [NumValide] est de type Alphanumérique (1 lettre et 6 chiffres).

    J'ai essaye via SomDom mais ca "bloque" au niveau du critère et je ne sais pas si c'est la bonne méthodo

    Merci d'avance de votre aide

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 859
    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 859
    Points : 14 977
    Points
    14 977
    Par défaut
    Bonsoir,
    ta requète doit ressembler à çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select sum([MontantFac]) from tatable where [NumValide] is not null;
    ou avec SomDom
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SomDom("[MontanFac]";"tatable";"[NumValide] is not null")
    et sur quel critère de regroupement se fait cette somme ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2012
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup pour ta réponse, je teste celà dans la journée et j'indiquerais le résultat mais je n'ai aucun doute.

    Le regroupement se fait sur un autre champ intitulé [Presta], le compte (nombre d'enregistrements) sur [NumValide] et la somme sur [MontantFac] donc.

    Bonne journée.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2012
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Re bonjour,

    Malheureusement celà ne fonctionne pas.

    Dans le premier cas, requete SELECT, cela me demande de "selectionner la source de données" ????? J'ai bien tenté d'indiquer le nom de mon ficheir Access mais erreur.

    Dans le second cas avec SomDom dans le générateur d'expression Access celà ne provoque pas d'erreur mais me renvoit un résultat vierge alors que des montants sont bien présents dans le champ [MontantFac].

    Es ce grave Docteur ?

    Merci et bonne journée.

  5. #5
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select sum([MontantFac]) from tatable where [NumValide] is not null;
    Modifie un peu la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select sum(tatable.MontantFac) AS MontantFac from tatable where tatable.NumValide is not null;
    @+.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2012
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Merci pour ta réponse rapide
    Citation Envoyé par zoom61 Voir le message
    Modifie un peu la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select sum(tatable.MontantFac) AS MontantFac from tatable where tatable.NumValide is not null;
    @+.
    J'ai bien modifié (ma table se nomme test)
    Select sum(test.MontantFac) AS MontantFac from test where test.NumValide is not null;

    Mais je suis toujours confrionté au même problème à savoir la boite de dialogue pour "selectionner la source de données" et là je ne sais pas quoi faire.

    En fait dès que je passe par le mode SQL et que je modifie dans ce mode, j'ai ce problème.

    Merci pour votre aide.

  7. #7
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Tu n'aurais pas fait une requête SQLDirect ?

  8. #8
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2012
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Re,

    Oui via l'option SQL Direct dans Access.

    C'est à dire que comme je débute depuis quelques semaines, je ne connais que cette option pour une requete SQL.

    Merci encore.

  9. #9
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Avec le code que l'on t'a donné, il faut faire une requête "basique", et normalement cela devrait fonctionner.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2012
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Re,

    Effectivement celà fonctionne mais ... à l'envers.

    Il me renvoie la somme pour lesquels les enregistrements sont vides et partiellement.

    Ma table : 4 champs : N° Auto, client, NumValide, MontantFac.

    6 enregistrements : 4 pour le client A, 2 pour le client B
    3 enregistrements avec un NumValide renseigné (2 pour le client A et 1 pour le client B et les montants renseignés pour les 6 enregistrements.

    Suite à la requète, il me renvoie uniquement une somme correspondant au montant où NumValide n'est pas renseigné et uniquement pour le client B.

    J'ai tenté de modifier Is not null par Is null mais tout est vide dans ce cas (normal là ..).

    Merci encore.

  11. #11
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 884
    Points : 58 499
    Points
    58 499
    Billets dans le blog
    45
    Par défaut
    bonsoir,

    tu voudrais obtenir un montant pour chaque client, non ?

  12. #12
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2012
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Bonsoir,

    Oui c'est exactement cela dans le cas ou le champ [NumValide] est renseigné.

    Merci et bonne soirée.

  13. #13
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 884
    Points : 58 499
    Points
    58 499
    Billets dans le blog
    45
    Par défaut
    Dans ce cas fait la requête avec les assistants, ce sera plus simple.

    Tu cliques sur le bouton "Totaux" pour faire une requête de regroupement, tu fais une opération "regroupement" sur Client, une opération "Somme" sur les montants et tu fais un filtre (opération "Où", case "Afficher" décochée) avec "Est Pas Null" sur l'autre champ.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2012
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Re,

    J'ai commencé par ce biais là sauf que dans ce cas la somme prise en compte est l'ensemle des sommes présentes dans le champs [MontantFac], pas uniquement si le champ [NumFac] est renseigné, y compris en mentionnant 'Est Pas Null' comme critère.

    C'est pour cette raison que je tente de passer par une requete avec condition.

    Merci encore.

  15. #15
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2012
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Re,

    C'est tout bon en fait, j'avais pas compris à la première lecture et avais mentionné le "Est pas Null" dans les critères et non dans la zone opération.

    Effectivement comme ceci çà fonctionne parfaitement.

    Merci beaucoup et excellente soirée.

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

Discussions similaires

  1. [XL-2013] Copier uniquement des cellules non vides sur un autre classeur
    Par tonyfrost dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/06/2014, 23h54
  2. [AC-2007] requete somme avec condition
    Par douiri2012 dans le forum Access
    Réponses: 1
    Dernier message: 23/10/2013, 22h45
  3. [XL-2003] Erreur code:copie de données non vides sur une autre feuille
    Par Razekiel_ dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 29/04/2013, 09h08
  4. Somme avec condition et affectation de valeur sur une plage
    Par thierryakaguy dans le forum Excel
    Réponses: 12
    Dernier message: 31/07/2009, 16h07
  5. [Access] requete sql avec condition sur date
    Par qeja dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/03/2006, 00h54

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