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 :

[Access] pb avec DISTINCT


Sujet :

Langage SQL

  1. #1
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut [Access] pb avec DISTINCT
    'Soir,

    J'ai une requête du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT  DISTINCT order_number,date_stamp,unid,cid  
    FROM records 
    WHERE ....
    Le pb est que si j'ai deux lignes qui ont le même order_number mais un date_stamp different, ces deux lignes sont affichées.

    Comment faire pour sélectionner plusieurs colonnes (order_number, date_stamp,unid,cid), mais que le DISTINCT ne cherche les doublons que dans la première colonne (order_number)?

    Merci pour vos idées...

    Ryan
    Sélectionneur
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  2. #2
    Membre habitué
    Inscrit en
    Juin 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 213
    Points : 154
    Points
    154
    Par défaut
    Salut,

    Tu as essayer de mettre ton champs order_number entre parenthèses juste après ton distinct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT  DISTINCT(order_number),date_stamp,unid,cid 
    FROM records
    WHERE ....

  3. #3
    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
    DISTINCT porte sur toutes les données sélectées.
    Et il ne peut en être autrement : si tu as plusieurs (date_stamp, unid, cid) pour un même order_number, quel triplet doit choisir le moteur ? C'est à toi de le décider, je te donne un exemple facile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT  order_number, MAX(date_stamp), MAX(unid), MAX(cid) 
    FROM records 
    WHERE...
    GROUP BY order_number
    Attention les MAXs sélectés ne proviennent pas forcément de la même ligne.
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  4. #4
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Bonjour et merci pour vos réponses.

    Pour Yoyopi:
    J'ai essayé cette syntaxe (et d'autres aussi), mais cela ne fonctionne pas.

    Pour Mediat:
    En théorie, toutes les colonnes date_stamp ayant le même order_number sont identiques car c'est un champ pré-rempli dans un formulaire HTML, mais le client a exigé que ce champ soit éditable, donc il peut arriver que date_stamp varie pour un même order_number.
    Si c'est le cas, la requête en question retourne deux lignes, et deux mails de confirmation sont envoyés pour la même commande. C'est là qu'est l'os.
    Mais, la solution que tu proposes fonctionne à merveille et la requête ne retourne plus qu'une seule ligne, donc je vais pouvoir cliquer sur "Résolu"!


    Ryan
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

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

Discussions similaires

  1. Probleme sous Access 2002 avec un fichier Access 2000
    Par branqueira dans le forum Access
    Réponses: 1
    Dernier message: 14/10/2005, 17h43
  2. Réponses: 1
    Dernier message: 06/09/2005, 11h10
  3. Access violation avec fseek
    Par baleine dans le forum C
    Réponses: 7
    Dernier message: 18/03/2005, 16h41
  4. [C#] Requête MS Access (Problème avec Date)
    Par Erakis dans le forum ASP.NET
    Réponses: 4
    Dernier message: 16/02/2005, 22h54
  5. tri obligatoire avec DISTINCT?
    Par Marseillais9 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 31/07/2003, 17h50

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