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 :

Sous totaux dans une requete


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 21
    Points : 13
    Points
    13
    Par défaut Sous totaux dans une requete
    Bonjour tout le monde,

    Je n'arrive pas à résoudre un problème qui me chagrine

    J'ai une table commande. Avec les champs [Valeur], [Date], [validation] (oui/non)et [NumSaisie] (un num de saisie qui confirme la facturation).

    Je veux connaitre, pour une période paramétré [...?] (entre date) :

    - La valeur totale de mes commandes
    - La valeur totale des commandes [validation]=faux
    - La valeur totale des commandes [validation]=vrai et [NumSaisie] est vide ou [NumSaisie]=0
    - La valeur totale des commandes [NumSaisie] est pleine et [NumSaisie]<>0

    J'ai essayer d'utilisé SomDom mais vraiment sans succès car le résultat était assez improbable.

    Merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Dans une requête, je ne sais pas trop si c'est possible. Quoi qu'il en soit, je ne sais pas comment.

    À ta place, je créerais un formulaire, avec deux contrôles pour introduire tes deux dates, et quatre autres pour accueillir chacun des totaux.

    Je créerais ensuite quatre requêtes qui donnent chacune un des résultats.

    Pour afficher les totaux dans le formulaire, j'utiliserais la fonction de domaine DLookup.

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


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 739
    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 739
    Points : 57 526
    Points
    57 526
    Billets dans le blog
    42
    Par défaut
    Hello

    Citation Envoyé par Ramboleretour Voir le message
    - La valeur totale de mes commandes
    avec un sum([Valeur]).


    Citation Envoyé par Ramboleretour Voir le message
    - La valeur totale des commandes [validation]=faux
    avec -sum(Not([valisation])*[valeur]).

    voir déjà si je raconte pas de bêtises avec ça...

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Bonjour et merci pour ces réponses !

    Avec -sum(NOT([valisation])*[valeur]). Les résultats sont de faibles valeurs négatives (assez improbable). Je n'ai pas plus creusé.

    La technique du formulaire me donne un peu de mal :
    - Dois-je prendre en compte les dates dans les requêtes ?
    - Comment créer une requête qui ne m'affiche que la ligne du total ? (et pas plusieurs lignes pour chaque cas unique);
    - Comment appeler les totaux depuis le formulaire ?
    - Et comment paramétrer les totaux en fonction des dates du formulaire ?

    Merci.

  5. #5
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Peux-tu poster une BdD compatible Access2000 avec un échantillon de tes tables. Ça nous permettrait de te donner des exemples concrets.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Je n'arrive pas à poster ma base Access (2007 ou 2000). Les formats mdb ou accdb ne sont pas valide.

  7. #7
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Poste le zip de ta BdD.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Nous y voilà !
    Fichiers attachés Fichiers attachés

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


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 739
    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 739
    Points : 57 526
    Points
    57 526
    Billets dans le blog
    42
    Par défaut
    Alors j'ai essayé ça :

    - La valeur totale de mes commandes
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    Sum(COMMANDE.[Valeur]) as total

    - La valeur totale des commandes [validation]=faux
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    Sum((1+[validation])*COMMANDE.[Valeur]) as Total1

    - La valeur totale des commandes [validation]=vrai et [NumSaisie] est vide ou [NumSaisie]=0
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    Sum(COMMANDE.[Valeur]*([validation])*(nz([NumSaisie],0)=0) ) as Total2

    - La valeur totale des commandes [NumSaisie] est pleine et [NumSaisie]<>0
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    -Sum(COMMANDE.[Valeur]*(nz([NumSaisie],0)<>0)) as Total3

    Ce qui donne :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Sum(COMMANDE.[Valeur]) as total,  
    Sum((1+[validation])*COMMANDE.[Valeur]) as Total1,
    Sum(COMMANDE.[Valeur]*([validation])*(nz([NumSaisie],0)=0) ) as Total2,
    -Sum(COMMANDE.[Valeur]*(nz([NumSaisie],0)<>0)) as Total3
    FROM COMMANDE;

    Cela convient ?

  10. #10
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Merci

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Alors, Merci encore pour tout.


    Si je peux encore abuser un peu de votre patience , j'ai un dernier petit détail sur le total1 :

    La valeur totale des commandes [validation]=faux et [NumSaisie] est vide


    J'ai essayé un mixte du total1 et du total2, mais je pense que je ne m'y suis pas très bien pris.

    Si c'est trop compliqué, ne vous embêtez pas. L'objectif est atteint. Merci.

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


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 739
    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 739
    Points : 57 526
    Points
    57 526
    Billets dans le blog
    42
    Par défaut
    Alors je dirais :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    -Sum((1+[validation])*COMMANDE.[Valeur]*isnull([NumSaisie])) as total4

  14. #14
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Merci de continuer à m'aider,

    C'est effectivement ce que j'avais essayé de faire :

    - Ca marche bien sur la base simplifié que je t'ai transmise, mais sur l'original ça me met un chiffre négatif ?? Qui a pratiquement la valeur négative de ce qu'il est supposé avoir.

    En supposant que la formule est bonne, avez-vous une idée de ce qui peut provoquer ce chiffre négatif ?

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


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 739
    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 739
    Points : 57 526
    Points
    57 526
    Billets dans le blog
    42
    Par défaut
    bonjour,

    les types de données (booléen, numérique entier, ...) sont identiques ?

  16. #16
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Oui dans les 2 cas nous avons :

    Validation = Oui/Non (booléen)
    NumSaisie= Texte

    La seule mini différence c'est sur la taille max du champ (NumSaisie : taillemax = 9)

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


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 739
    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 739
    Points : 57 526
    Points
    57 526
    Billets dans le blog
    42
    Par défaut
    Je ne vois pas pourquoi


    Il faudrait voir si les expressions sont bien évaluées, par exemple avec total4
    Citation Envoyé par f-leb Voir le message
    Alors je dirais :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    -Sum((1+[validation])*COMMANDE.[Valeur]*isnull([NumSaisie])) as total4
    Dans une autre requête, décomposer l'expression :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT COMMANDE.[Valeur], (1+[validation]) as expr1, isnull([NumSaisie]) as expr2,
    -(1+[validation])*COMMANDE.[Valeur]*isnull([NumSaisie]) as expr3
    FROM COMMANDE
    et repérer l'expression qui cloche.

  18. #18
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Re-coucou !

    Alors, je crois que j'ai trouvé la cause : mon incroyable non-intelligence! Cette capacité effroyable à recopier sans comprendre...

    En comprenant le fonctionnement de la formule je me suis rendu compte que celle-ci manquait un signe négatif que j'ai oublié de mettre la négation devant la formule.

    Au moins j'ai compris la logique d'utilisation de la formule.


    Merci pour tout.

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


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 739
    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 739
    Points : 57 526
    Points
    57 526
    Billets dans le blog
    42
    Par défaut
    Il est vrai que j'aurais dû préciser :

    - une expression qui retourne False est équivalente à la valeur 0 sur Access ;
    - une expression qui retourne True est équivalente à la valeur -1, d'où le signe moins

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

Discussions similaires

  1. [XL-2003] Sous Totaux dans une liste grace à des "Inputbox".
    Par graphikris dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/05/2013, 17h37
  2. [AC-2010] variable de sous-formulaire dans une requete sans VB
    Par tibjedi dans le forum IHM
    Réponses: 2
    Dernier message: 28/03/2012, 08h45
  3. [AC-2002] Comment calculer des sous-totaux dans une requete croisee
    Par babinou dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/08/2009, 09h43
  4. Ajout de Sous Totaux dans une requête
    Par oohcalme dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 14/08/2009, 12h06
  5. RS 2005 - sous-totaux dans une matrice
    Par sandmil dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 11/12/2007, 09h20

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