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 :

Regroupement et tri sur champ différents


Sujet :

Requêtes et SQL.

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 37
    Par défaut Regroupement et tri sur champ différents
    Bonjour,
    Je veux faire une requete sous Access97 qui regroupe les valeurs du champ1, et qui trie par champ2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select distinct champ1 from matable order by champ2
    ==> La clause order by (champ2) est en conflit avec distinct

    Voici le contenu de matable

    champ1 champ2
    dupont 5
    herve 2
    dupont 8
    jacques 4

    et je veux obtenir
    herve
    jacques
    dupont

    Avec MySql c'est ultra simple (select champ1 from matable group by champ1 order by champ2), mais là, je sèche...

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    C'est aussi simple en Access : n'utilise pas distinct mais group by.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 37
    Par défaut
    Merci pour ta réponse, mais malheureusement ça ne se passe pas aussi bien que ça car quand je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select champ1 from matable group by champ1 order by champ2
    j'ai en échange le message d'erreur suivant :

    Vous avez essayé d'exécuter une requête ne comprenant pas l'expression spécifiée 'champ2' comme une partie de la fonction de regroupement.
    Une idée ?

  4. #4
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Par défaut
    salut Dertron et marot_r,

    en l'absence de marot_r:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT champ1
    FROM matable
    GROUP BY champ1
    ORDER BY Last(champ2);

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 37
    Par défaut
    Mais c'est carrément génial ! Merci vodiem, ça fonctionne au top. Et du coup j'en déduis qu'avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT champ1,First(champ2)
    FROM matable
    GROUP BY champ1
    ORDER BY Last(champ2);
    je pourrai afficher le premier champ2 correspondant au champ1 associé. Trop classe, encore merci !
    Et comme quoi sur certains détails, il y a de grosses différences entre mysql et access...

  6. #6
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Par défaut
    oui mais tu risques d'avoir une vision "erroné" du tri puisqu'il se fait sur Last() (j'ai pris d'après ton exemple).

    je te conseil plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT champ1, Last(champ2)
    FROM matable
    GROUP BY champ1
    ORDER BY Last(champ2);
    Citation Envoyé par Dertron
    il y a de grosses différences entre mysql et access...
    il y a des différences c'est sur, mais cette syntaxe me parait curieux:
    Citation Envoyé par sql
    select champ1 from matable group by champ1 order by champ2
    puisque l'on ne sait pas quel champ2 il doit prendre lors du groupement.

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 19/06/2008, 16h44
  2. [MySQL] Tri sur champ au format date - uniquement mois/année
    Par skippy86 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/01/2007, 11h27
  3. [Access 2003] Tri sur champ vide
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/11/2006, 12h07
  4. [CR]tri sur champ formule
    Par planetevoyage dans le forum Formules
    Réponses: 6
    Dernier message: 31/08/2005, 14h31
  5. tri sur champ texte
    Par ridan dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/08/2004, 16h28

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