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

Macros et VBA Excel Discussion :

instruction GROUP BY


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut instruction GROUP BY
    bonjour tout le monde;
    j'ai un petit probleme avce goup by;
    ce code fonctionne bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
          rSQL = "SELECT  [CONSOMMATEURS$].BUREAU, [GRILLECONSOMMATEURS$].DOSCONFORME, [CONSOMMATEURS$].NOPRET " & _
              " FROM [CONSOMMATEURS$] " & _
              "INNER JOIN [GRILLECONSOMMATEURS$]" & _
              " ON [CONSOMMATEURS$].NOPRET = [GRILLECONSOMMATEURS$].NOPRET "
    mais celui là non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
          rSQL = "SELECT  [CONSOMMATEURS$].BUREAU, [GRILLECONSOMMATEURS$].DOSCONFORME, [CONSOMMATEURS$].NOPRET " & _
              " FROM [CONSOMMATEURS$] " & _
              "INNER JOIN [GRILLECONSOMMATEURS$]" & _
              " ON [CONSOMMATEURS$].NOPRET = [GRILLECONSOMMATEURS$].NOPRET " & _
           "GROUP BY  [CONSOMMATEURS$].BUREAU "
    d'ailleur meme la requete la plus simple avec group by ne fonctionne pas!!!!!!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
          rSQL = "SELECT  [CONSOMMATEURS$].BUREAU" & _
              " FROM [CONSOMMATEURS$] " & _
                              "GROUP BY  [CONSOMMATEURS$].BUREAU "
    merci par avance!!

  2. #2
    Membre éprouvé Avatar de zebulon2212
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Par défaut
    Principe fondamental du SQL : pas de group by sans agrégat

    SELECT (DISTINCT) FROM nom table WHERE condition


    (GROUP BY (pour agrégat) nom colonne)


    (HAVING condition de recherché(agrégat))


    (ORDER BY nom colonne ASC,DESC )


    - GROUP BY Partition d’une table.
    Regroupe les valeurs des champs voulus et les classes en ordre croissant (un tri).
    Après les avoir regrouper, elle applique (s’il y a lieu), sur chaque groupe, les opérations statistiques tels SUM, MIN, MAX, AVG et COUNT.  Visualiser la somme et la moyenne des salaires en regroupant les postes et les départements en ordre croissant :
    SELECT poste, dep
    SUM (sal)
    AVG (sal)
    FROM EMP
    GROUP BY poste, dep ;

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut Merci pour ta réponse
    SALUT zebulon

    Tu sais je vois pas bien ce que tu veux dire mais je vais essayer de faire une autre recherche a propos des agrégats et GROUPE BY!!!??merci et je te tiendrai au courant dans quelques instants a+

  4. #4
    Membre chevronné
    Inscrit en
    Janvier 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 483
    Par défaut
    Bonjour
    essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select "champ1,champ2,champ3,champ4 From [Feuil1$] Sum(Champ4) As Mont,Group By champ1,champ2,champ3,champ4 Having Champ1=ta condition "
    Abed_H

  5. #5
    Membre éprouvé Avatar de zebulon2212
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Par défaut
    Ce que je veux dire c'est que pour faire un group by, il faut obligatoirement avoir un agrégat dans la clause select
    un agrégat ça peut être sum, count, avg, etc...
    c'est un calcul en fait

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut ce n'est pas claire
    tout d'abord merci à toi Abd_H;
    ton message n'est assez claire pour moi!!est ce que tu veux dire qu'il faut rajoute des conditions???? explique moi stp ta suggestion merci


  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut ok
    justement j'ai commencer par ça: c'est ma requete au depart
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     rSQL = "SELECT  [CONSOMMATEURS$].BUREAU,SUM([GRILLECONSOMMATEURS$].DOSCONFORME), [CONSOMMATEURS$].NOPRET " & _
              " FROM [CONSOMMATEURS$] " & _
              "INNER JOIN [GRILLECONSOMMATEURS$]" & _
              " ON [CONSOMMATEURS$].NOPRET = [GRILLECONSOMMATEURS$].NOPRET " & _
             "GROUP BY  [CONSOMMATEURS$].BUREAU "
    mais apres je voulais savoir ou se trouve le probleme alors j'ai simplifer pour voir que est ça donne!!!mais rien, alors je pense le probleme ce n'est pas celui des agrégat!! n'esst ce pas?

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut et encore
    d'ailleurs meme sum ne fonctionne pas??? a votre avis est ce que ce n'est pas un probleme de syntaxe????
    la suite de mon code est :
    'Exécution de la Recherche SQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Set rsT = New ADODB.Recordset
            With rsT
                .ActiveConnection = Conn
                .Open rSQL, , adOpenKeyset, adLockOptimistic, adCmdTableDirect
            End With
          'Afficher
    [Feuil9].Range("A93").CopyFromRecordset rsT

  9. #9
    Membre éprouvé Avatar de zebulon2212
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Par défaut
    essaie de remplacer ton group by par un order by, c'est peut-être ça que tu cherche à faire vu que tu n'a pas l'air de maitriser le sql.
    Sinon joins ton fichier que je puisse mieux cerner le problème.

  10. #10
    Membre chevronné
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Par défaut
    2 choses :
    1 votre requete me semble tirée par les cheveux
    2 La somme etant sur DOSCONFORME : le group by doit forcement etre sur
    C.BUREAU & C.NOPRET

    essayez quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    rSQL =  "Select  C.BUREAU, Sum(G.DOSCONFORME), C.NOPRET " & _                    
            "From [CONSOMMATEURS$] C , [GRILLECONSOMMATEURS$] G " & _   
            "Where  C.NOPRET = G.NOPRET " & _    
            "GROUP BY  C.BUREAU , C.NOPRET "

  11. #11
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut ça va mieux
    tu sais avec order by ça marche, mais moi je veux qu'il regroupe le resultat par BUREAU(colonne dans la feuille CONSOMMATEURS) et me donne la somme de la colnne(DOSCONFORME) de la feuille (GRILLECONSOMMATEURS)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     rSQL = "SELECT  [CONSOMMATEURS$].BUREAU, sum([GRILLECONSOMMATEURS$].DOSCONFORME), [CONSOMMATEURS$].NOPRET " & _
              " FROM [CONSOMMATEURS$] " & _
              "INNER JOIN [GRILLECONSOMMATEURS$]" & _
              " ON [CONSOMMATEURS$].NOPRET = [GRILLECONSOMMATEURS$].NOPRET " & _
             "order BY  [CONSOMMATEURS$].BUREAU "
    je te remerci encore une autre fois pour ton aide. alors est ce que tu veux que je t'envoie le code ou bien le fichier excel?

  12. #12
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut
    tu sais avec ta syntace ya pas ça bug pas il ça me donne un resultat, mais pas le champ BUREAU n'est pas groupé!!!!!

    merci argoet;
    ta syntaxe est bon mais le resultat n'est pas groupé

    argoet, dis moi pourquoi tu veux que je groupe sur les deux champs: C.BUREAU , C.NOPRET , moi je veux faire le groupement sur C BUREAU selement?

    mais je comprend pas pourquoi avec les deux ça bug pas mais avec seul ça bug???

  13. #13
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut en fin ça marche
    merci à vous tous en fin ça marche tres tres bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    rSQL = "Select  C.BUREAU, Sum(G.DOSCONFORME) " & _
            "From [CONSOMMATEURS$] C , [GRILLECONSOMMATEURS$] G " & _
            "Where  C.NOPRET = G.NOPRET " & _
            "GROUP BY  C.BUREAU  "
    je ne suis pas sur de ma conclusion, et que je compred pas bien aussi:
    quand j'ai enlevé , C.NOPRET ça marche §§§§!!!!!!!!!!!!!!!!
    encore merci c'est tres gentil je suis sauvé

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

Discussions similaires

  1. [aide]probléme avec l'instruction group by
    Par diden138 dans le forum Bases de données
    Réponses: 4
    Dernier message: 25/05/2007, 07h09
  2. [SQL] Instruction CREATE GROUP
    Par langelot222 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 23/04/2007, 11h03
  3. Instruction pour créer un fichier text ???
    Par Soulsurfer dans le forum Langage
    Réponses: 2
    Dernier message: 06/08/2002, 11h17
  4. [Crystal Report][VB6] instruction PrintReport
    Par yyyeeeaaahhh dans le forum SDK
    Réponses: 4
    Dernier message: 29/07/2002, 14h58
  5. [TASM] Problème concernant l'instruction LGDT
    Par Ninkosen dans le forum Assembleur
    Réponses: 3
    Dernier message: 15/07/2002, 19h09

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