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 :

requete sql 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 requete sql group by
    rebonjour à tous;

    jj'ai un autre probleme: j'ai cette requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SQL_conso = " SELECT BUREAU,  count(*) FROM[" & NomFeuille & "$] " & _
    " WHERE  MARCHE IN('" & AGRICULTL & "','" & AGRICULTH & "') and  NOARCH <> '' " & _
    " GROUP BY BUREAU"
    qui me donne le nombre de NOARCH non vide par BURAEU, mais quand un champ de BUREAU a des NOARCH vide il affche pas , c'est à dire , il met pas 0. alors moi je veux affcher les BUREAU avec le nombre de NOARCH non vide correspondant, meme si c'est zero§???? merci par avance

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    Peut-être avec un LEFT JOIN ?
    Malheureusement je n'ai pas de base SQL pour tester, mais peut être si tu fouilles un peu ce code pourrait-il t'aider ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SQL_conso = " SELECT a.BUREAU,  count(b.*) & _
    FROM [" & NomFeuille & "$] a LEFT JOIN [" & NomFeuille & "$] b ON a.BUREAU=b.BUREAU & _
    " WHERE  b.MARCHE IN('" & b.AGRICULTL & "','" & b.AGRICULTH & "') and  b.NOARCH <> '' " & _
    " GROUP BY a.BUREAU"
    Enfin si ça marche du 1er coup je me fais moine
    Donc prends ça plus comme une piste que comme une solution
    L'idée est de déclarer la même table deux fois, comme s'il y avait deux tables en fait. Mais je raconte peut-être des c... .

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    A la relecture je pense avoir mal compris ton cas.
    En fait quand il y a zéro tu considères que ce n'est pas vide, c'est ça ?

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut ça marche pas
    merci neupont pour ta reponse mais ça ne s'execute meme pas?? je vais essayer d'abord de comprendre bien ton idée ensuite je vais essayer de modifier!!!!!

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    Oui je crains de ne pas bien comprendre ce que tu souhaites.
    Est-ce que tu es sûr que virer la clause and NOARCH <> '' ne suffirait pas à ton bonheur ?

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut en claire
    en claire j'affiche le nombre de champs 'NOARCH' non vide par BUREAU, sauf quand il trouve pour un bureau X le nombre de champs NOARCH est nul alors il n'affiche pas!!! tu sais pourquoi par ce que il trie d'abord la table par les champs NOARCH non vide apres il fait le goup by?? mais moi ça m'arrange pas!!! je veux qu'il fasse d'abord le group by ensuite calculer les NOARCH non vid correspondant....j'espère que cette fois ci je suis claire?

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    Si tu ne t'en sors pas essaye de voir sur un forum SQL, parce que c'est clairement pas une problématique de VBA excel

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut ok
    je pense ce que je vais faire, comme je n'ai pas utiliser le left joint donc il faut que je regade bien sa syntaxe, parceque meme ce code simple il s'execute pas???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SQL_conso = " SELECT a.BUREAU,  count(b.NOARCH) " & _
                " FROM [" & NomFeuille & "$] a LEFT JOIN [" & NomFeuille & "$] b ON a.BUREAU=b.BUREAU "
    et je pense si tu fais on tu ne dois pas mettre where???bon je ne sais pas mais je vais voir ça! encore merci por ta piste

Discussions similaires

  1. Requete SQL group by interval
    Par hachka dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/08/2010, 14h07
  2. requete sql: group by
    Par mathumathu dans le forum Langage SQL
    Réponses: 7
    Dernier message: 20/07/2010, 11h37
  3. Requete SQL : GROUP BY
    Par lassa0232 dans le forum Requêtes
    Réponses: 4
    Dernier message: 29/07/2009, 11h59
  4. Requete SQL GROUP
    Par basson dans le forum Développement
    Réponses: 2
    Dernier message: 14/11/2008, 14h35
  5. [Requete][Sql]Vue et group by
    Par guignol dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/12/2005, 12h58

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