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 :

DISTINCT pour faire un tri unique


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juin 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut DISTINCT pour faire un tri unique
    Bonjour,

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT NT04.Label FROM NT04
    Me donne bien une liste de label unique
    FAQ Access : Les attributs placés après l'instruction SELECT

    Je voudrai ajouter en deuxième colonne le NT04.Numero correspondant au Label mais sans pour autant faire
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT NT04.Label,NT04.Numero FROM NT04
    qui dans ce cas me laisse des doublons Label, car un même Label possède plusieurs Numero et je voudrai garder que le premier trouvé.

    Je cherche à reproduire le comportement du filtre automatique Excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("E9:E" & ligne).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
    Merci

    M. Excel est trop fort...

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 741
    Points
    11 741
    Par défaut
    Démarche :

    - tu vires le DISTINCT
    - tu affiches la ligne Opérations (bouton Ʃ)
    - sur cette ligne, tu passes NT04.Label en "Regroupement" et NT04.Numero en "Premier"

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juin 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Merci,
    J'ai donc obtenu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT NT04.N°, NT04.Label
    FROM NT04
    GROUP BY NT04.N°, NT04.Label;
    J'avais bien vu le GROUP BY mais je pensais pas qu'il etait aproprié.

    PS : j'ai pris 2s pour chercher la balise ste fois

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 741
    Points
    11 741
    Par défaut
    Normalement, ça doit donner le même résultat que le distinct.

    Ce que je disais c'est plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT NT04.N°, First(NT04.Label) AS PremierLabel
    FROM NT04
    GROUP BY NT04.N°;
    Merci pour les balises

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juin 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    En effet j'obtiens pareil qu'avec le DISTINC, d'où mon retour

    mais au miracle tu avais déjà réagit

    Voici la commande qui me va bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT First(NT04.N°) AS PremierNumero, NT04.Label 
    FROM NT04
    GROUP BY NT04.Label;
    Car je veux garder un Label unique et le premier N° associé.
    Ma table contient a la fois
    plusieurs Label pour un même N°
    plusieurs N° pour un même Label


    Le problème était de pouvoir GROUP sur une colonne et d'afficher d'autres colonnes sans obtenir une erreur :
    vous essayer d'exécuter une requête ne comprenant pas l'expression spécifié N° comme une partie de la fonction d'agrégat

    La solution est donc first

    Merci beaucoup

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

Discussions similaires

  1. [MySQL] fusionner deux tableaux par une variable commune pour faire un tuple unique
    Par mickeynad dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 11/04/2010, 10h28
  2. Récupérer n° semaine d'une date pour faire un tri
    Par mdr_cedrick dans le forum Requêtes
    Réponses: 2
    Dernier message: 24/08/2009, 14h32
  3. Aide pour faire un tri sur Excel
    Par legolas51 dans le forum Excel
    Réponses: 4
    Dernier message: 05/09/2008, 16h23
  4. Obtenir la lettre de la derniere colonne non vide pour faire un tri.
    Par arnold95 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/10/2007, 15h25
  5. [VBA-E] Macro Pour Faire un Tri sur plage variable
    Par tabarly35 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/09/2006, 19h02

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