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

Bases de données Delphi Discussion :

[FireBird] Distinct avec un autre champ


Sujet :

Bases de données Delphi

  1. #1
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut [FireBird] Distinct avec un autre champ
    Bonsoir.

    Voila plus de deux heures que je troune en rond sans trouver de solution.

    J'ai une table "GESTION" avec les champs "ID_GESTION, APPAREIL, USERID".
    Je voudrais executer une requete qui affichera dans un DBLookupListBox la liste des appareils de façon "DISTINCT".

    Je voudrais selectionner dans ma requete, le champ USERID ID_GESTION et le champ APPAREIL qui lui serat de façon distinct.

    Voici la requete que j'ai testé mais qui n'éffectue pas le DISTINCT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT DISTINCT(APPAREIL),ID_GESTION,USERID from GESTION
    J'ai du mal à trouver la solution.

    Merci à vous !

    ps: J'utilise Firebird 2.01, Avec les composants Interbase, et Delphi7.

  2. #2
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Le DISTINCT s'applique à l'ensemble des champs ramenés.
    C'est assez normal, sinon, si tu as deux enregistrements avec la même valeur pour APPAREIL, je suppose que USERID et / ou ID_GESTION vont changer de valeur, et alors, laquelle faut-il ramener ?

  3. #3
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    Citation Envoyé par rsc Voir le message
    Le DISTINCT s'applique à l'ensemble des champs ramenés.
    C'est assez normal, sinon, si tu as deux enregistrements avec la même valeur pour APPAREIL, je suppose que USERID et / ou ID_GESTION vont changer de valeur, et alors, laquelle faut-il ramener ?

    C'est bien ce que j'ai fini par me dir... Et bien il faudrait ramener ID_GESTION... Sinon, on ne peut pas ramener ID_GESTION et USERID??


    Merci de ton aide !

  4. #4
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Citation Envoyé par jojo86 Voir le message
    Et bien il faudrait ramener ID_GESTION... Sinon, on ne peut pas ramener ID_GESTION et USERID??
    Si pour un APPAREIL donné, ID_GESTION est toujours le même, il suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT APPAREIL, ID_GESTION
    sinon ça n'a aucun sens. A supposer que ce soit possible, cela reviendrait à ramener au hasard une des valeurs Idem pour ID_GESTION. Si tu as besoin par ailleurs des USERID et ID_GESTION associés à chaque appareil, il faut faire une deuxième requête, sans DISTINCT

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Il te faut faire deux requêtes séparées à mon avis. Une qui ramène la liste distinctes des appareils et l'autre qui ramène l'ensemble des APPAREIL, ID_GESTION, USERID

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 49
    Points : 48
    Points
    48
    Par défaut Je pense que
    Je pense pour ma part qu'il serait préférable par exemple de faire des requêtes séparées. Une première requête sélectionne les champs IB_GESTION et les stocke dans un Dcombobox par exemple, une deuxième sélectionne USERID et les stocke dans un deuxième combobox. Maintenant tu peux choisir des valeurs dans ces deux champs et faire des requêtes simples. ça va marcher à merveille. Pour chaque tuple tu vas avoir les enregistrements correspondants.

  7. #7
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut

    peut tu nous montrer la structure de la table? une requête avec jointure pourrait réaliser cela.

Discussions similaires

  1. Remplir automatiquement 1 champ text avec 2 autres champs text
    Par Dsphinx dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/05/2010, 21h11
  2. COUNT avec d'autre champs à sélectionner
    Par piotrr dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/03/2008, 11h37
  3. Réponses: 7
    Dernier message: 14/12/2006, 14h18
  4. SELECT DISTINCT avec tri sur un autre champ que celui du distinct
    Par Stephane_br dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/11/2006, 11h37
  5. introduire un count avec d'autres champs
    Par amelhog dans le forum Langage SQL
    Réponses: 13
    Dernier message: 18/08/2005, 14h57

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