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 :

Problème utilisation SomDom


Sujet :

Requêtes et SQL.

  1. #1
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 452
    Points : 43 103
    Points
    43 103
    Par défaut Problème utilisation SomDom
    J'ai un soucis d'utilisation de SomDom dans une requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Expr1: SomDom([hono_n];"Req1";"mois<="+[mois])
    J'ai une erreur sur une des 2 lignes.

    Ma table se présente comme ceci :

    periode hono_n
    201401 2000
    201402 1000
    201403 3000

    Le résulat que je souhaites, c'est un cumul par mois comme ceci :

    mois hono_n
    01 2000
    02 3000 ( correspondant à 2000+1000)
    03 6000 ( correspondant à 2000+1000+3000 ) etc .

    Je suis ouvert à autre chose que SomDom, je pense que ça doit pouvoir se faire en SQL
    J'ai dans la requête Req1 qui contient les valeurs telles quelles

    01 2000
    02 3000
    03 6000

    Merci pour votre aide.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  2. #2
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Bonjour,
    un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    total: NZ(RechDom("[hono_n]";"[nom_Table]";"[periode]=" & annee & mois-1);0) + NZ([hono_n];0)
    En gros, je vais chercher la valeur enregistrée de ta période sélectionnée avec un mois -1 (je pense que grâce au NZ(,0), si tu tombes sur 201399, il n'y aura pas de soucis. A toi d'adapter si tu cherches à avoir 201312 et donc cumulé avec les années précédentes).

    La seconde partie récupère la valeur de ta table sur le mois sélectionné. Ainsi, tu obtiendras une somme.

    Je décompose ce genre de calcul volontairement afin de pouvoir contrôler si tous mes calculs et mes recherches fonctionnent correctement. C'est plus pratique.

    Cordialement,

    PS : je ne l'ai pas testé
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

  3. #3
    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 : 78
    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,

    Cette requête te donne le résultat au départ de LaTable qui contient les 2 colonnes :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Right([periode],2) AS Mois, DSum("hono_n","LaTable","periode<=""" & [periode] & """") AS Cumul
    FROM LaTable;
    Ce qui donne, lorsque l'on teste,



    Et si tu veux maîtriser le sujet, un coup d'œil sur ce tutoriel : Les requêtes avec regroupement de f-leb.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 452
    Points : 43 103
    Points
    43 103
    Par défaut
    Merci Claude et Gado pour vos réponses.

    J'ai trouvé tout seul. En fait j'ai remplacé le + par un & dans le 3ème argument. J'avais zappé que je gérais du texte dans mon champ période. Le truc con surtout que j'utilise ailleurs avec Cint.

    Je vais jeter 1 œil sur le tuto.

    Par contre, si c'est possible d'utiliser du SQL pur plutôt que SomDom. En théorie, ça doit être faisable, mais j'en fais pas assez pour maitriser cet aspect.

    Je vous mets quand-même un +1

    Bonne soirée.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

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


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 620
    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 620
    Points : 56 857
    Points
    56 857
    Billets dans le blog
    40
    Par défaut
    Salut,

    avec la requête R1, tu ramènes les lignes :

    periode hono_n
    201401 2000
    201402 1000
    201402 2000
    201403 3000
    201403 1000
    201403 2000
    *chouette, les tableaux dans l'éditeur

    Tu bascules en requête de regroupement (requête R2) pour obtenir le cumul.

    Note : le cumul fonctionne ici par année (critère de la 3e colonne)
    Images attachées Images attachées   

  6. #6
    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 : 78
    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
    Bien vu Fabien !
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

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

Discussions similaires

  1. Problème utilisation DLL
    Par Tub-95 dans le forum MFC
    Réponses: 4
    Dernier message: 02/11/2005, 12h00
  2. [Tomcat][Spring] Problème utilisation mémoire
    Par Wutintin dans le forum Hibernate
    Réponses: 12
    Dernier message: 08/09/2005, 14h57
  3. [JSTL] [EL] Problème utilisation <c:out>
    Par XavierL dans le forum Taglibs
    Réponses: 7
    Dernier message: 14/08/2005, 20h12
  4. (Problème) Utilisation de l'API mySQL [Delphi 2005 Perso]
    Par will-scs dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/08/2005, 18h26
  5. [JAR]Problème utilisation manifest et jar
    Par doudine dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 07/01/2005, 10h21

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