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

Langage SQL Discussion :

pb requete. probablement group by


Sujet :

Langage SQL

  1. #1
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut pb requete. probablement group by
    Bonjour,

    je n'arrive pas à faire une requête donc je fais appel à vous. Je pense que ça doit avoir un rapport avec le group by.

    Imaginons un tableau avec des données.
    Mon tableau a 4 colonnes
    - nom chef
    - nom autre
    - date principale
    - date secondaire

    Pour 1 nom chef, il y a toujours 4 noms autres, donc 4 lignes dans le tableau, pour un seul nom chef.

    Ma requete doit récupérer la liste des noms chefs où date principal n'est pas nulle ou bien date secondaire n'est pas nulle, triée par date principale puis par date secondaire.

    voici à quoi ressemble le tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    nom chef | nom autre | date principale | date secondaire
    A|1|d1p|d1s
    A|2|d2p|d2s
    A|3|d3p|d3s
    A|4|d4p|d4s
    B|5|d5p|d5s
    B|6|d6p|d6s
    B|7|d6p|d6s
    B|8|d6p|d6s
    Voici la requete que j'avais faite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT [nom chef], [date_principale], [date_secondaire]
    FROM matable
    WHERE ([date_principale] Is Not Null Or [date_secondaire] Is Not Null)
    ORDER BY [date_principale], [date_secondaire];
    Le probleme c'est que je récupère plusieurs fois un meme nom chef, si les dates sont non nulles pour au moins 2 de ces noms autres:

    c'est a dire que si 4 noms autres correspondant au meme nom chef ont tous les 4 des dates non nulles, alors je récupère 4 fois le nom du chef.

    Mais comme c'est trié par date, dans la liste, je vais avoir un nom chef répété 4 fois mais à plusieurs lignes d'intervalle, car entre les 4 memes noms chefs, il y aura d'autres noms chefs à cause des dates triées.

    Donc comment faire pour avoir une liste avec les memes noms chefs regroupés ensemble et pour chacun d'eux, les dates triées dans l'ordre ?
    J'ai essayé un truc avec group by nom (order by nom, date principale, date secondaire group by nom) mais ça me met syntax error. Je crois que c'est parce qu'il faut dans la requete une fonction d'agregation comme le count, mais je n'ai rien à compter...

    voilà merci de votre aide

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut Re: pb requete. probablement group by
    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT a.[nom chef], a.[date_principale], a.[date_secondaire] 
    FROM maTable a INNER JOIN maTable b ON a.[nom chef] = b.[nom chef]
    WHERE (a.[date_principale] Is Not Null Or [a.date_secondaire] Is Not Null) 
    GROUP BY a.[nom chef], a.[nom autre], a.[date_principale], a.[date_secondaire] 
    ORDER BY MIN(b.[date_principale]), MIN(b.[date_secondaire]), a.[date_principale]), a.[date_secondaire];
    Eventuellement tu auras à faire des adaptations, la syntaxe ACCESS :

  3. #3
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut
    ok merci. j'ai un peu adapté. je n'ai plus d'erreur avec le group by car il fallait que j'énumère tous les champs du select.

    Bonne journée.

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

Discussions similaires

  1. Requete avec group by
    Par rico3434 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/10/2007, 21h36
  2. Problème de requete, COUNT, GROUP BY etc.
    Par TheRedLed dans le forum Requêtes
    Réponses: 3
    Dernier message: 22/05/2007, 16h03
  3. [Oracle] Requête avec GROUP BY
    Par bud_gw dans le forum Langage SQL
    Réponses: 3
    Dernier message: 03/07/2006, 11h26
  4. Requete avec group by
    Par zamilou dans le forum Langage SQL
    Réponses: 6
    Dernier message: 31/03/2006, 09h37
  5. Requete mysql group by
    Par yobogs dans le forum Requêtes
    Réponses: 3
    Dernier message: 09/11/2005, 22h38

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