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

Access Discussion :

Récupération du nom de colonne dans une requête


Sujet :

Access

  1. #1
    Membre du Club Avatar de Devlop++
    Inscrit en
    Avril 2006
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2006
    Messages : 86
    Points : 45
    Points
    45
    Par défaut Récupération du nom de colonne dans une requête
    Salut tous le monde,
    Voila j'ai conçu une table comme suit :

    Choix (idagent, nom, choix1, choix2, choix3, choix4, choix5)

    Et j'ai saisie les 5 choix correspondant à chaque agent, puis j'ai établie la requête sélection suivante qui me retourne l'agent qui a dans ses choix le code XXXXX :

    SELECT CHOIX.IDAGENT, CHOIX.NOM, CHOIX.CHOIX1, CHOIX.CHOIX2, CHOIX.CHOIX3, CHOIX.CHOIX4, CHOIX.CHOIX5,
    FROM CHOIX
    WHERE
    [CHOIX]. [CHOIX1]='XXXXX' OR
    [CHOIX]. [CHOIX2]='XXXXX' OR
    [CHOIX]. [CHOIX3]='XXXXX' OR
    [CHOIX]. [CHOIX4]='XXXXX' OR
    [CHOIX]. [CHOIX5]='XXXXX';

    Et ca donne cela:

    IDAGENT NOM CHOIX1 CHOIX2 CHOIX3 CHOIX4 CHOIX5

    00000000 Agent1 03111 XXXXX 01888 03121 24094
    11111111 Agent2 19365 09735 24152 24094 XXXXX
    22222222 Agent3 01045 01060 XXXXX 05190 03121
    33333333 Agent4 24115 24094 XXXXX 01060 03111
    44444444 Agent5 03110 03121 03111 03130 XXXXX

    Je voulais ensuite transformer cette requête de façons qu'elle me renvoie le nom de la colonne (c'est l'idée que j'ai a l'esprit, une autre idée serai le bien venu) où se trouve l'occurrence exigée, ce qui donnerai a peut prés cela:

    IDAGENT NOM CHOIX

    00000000 Agent1 CHOIX2
    11111111 Agent2 CHOIX5
    22222222 Agent3 CHOIX3
    33333333 Agent4 CHOIX3
    44444444 Agent5 CHOIX5

    J'ai essayé un tas de truc en vain, si vous pouvez me donner un coup de main je vous serai reconnaissant.
    J'attends votre aide avec impatience.
    Merci d'avance.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonsoir;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Choix.idagent, Choix.nom, Choix.choix1, Choix.choix2, Choix.choix3,
     Choix.choix4, Choix.choix5, IIf([choix1]="xxxxx","choix1",IIf([choix2]="xxxxx",
    "choix2",IIf([choix3]="xxxxx","choix3", IIf([choix4]="xxxxx","choix4",
    IIf([choix5]="xxxxx","choix5"))))) AS OuEsTil
    FROM Choix;
    Cordialement.

  3. #3
    Membre du Club Avatar de Devlop++
    Inscrit en
    Avril 2006
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2006
    Messages : 86
    Points : 45
    Points
    45
    Par défaut


    Votre solution m'était d'un grand secours, je vous remercie infiniment pour la clarté de la réponse et d'avoir répondu aussi vite a ma question.


    J'aimerai savoir s'il existe un équivalent à cette fonction " IIF", "VraiFaux" en Access, dans le SGBD Oracle.
    Encore merci pour la subtile solution j'en suis reconnaissant.

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Il existe la fonction Decode sour oracle.

    Ceci dit, votre structure n'est pas du tout normalisé. Vous traitez des données en colonne alors qu'elle devrait l'être en ligne. Le besoin d'identifier le nom d'une colonne ne devrait jamais exister puisqu'en fait le développeur sait où l'information est stockée, il n'a pas à la chercher

  5. #5
    Membre du Club Avatar de Devlop++
    Inscrit en
    Avril 2006
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2006
    Messages : 86
    Points : 45
    Points
    45
    Par défaut
    Salut,
    Merci pour pour la fonction DECODE, je ne croyais pas qu'elle était capable de me résoudre un tel problème.

    En ce qui concerne la normalisation de la structure, c'est dû à l'importation des données a partir d'un fichier EXCEL où elles sont en colonne, ça serait fastidieux de les réaménagées pour respecter la norme.

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

Discussions similaires

  1. [Requete]Faire disparaître une colonne dans une requête
    Par emilie31 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/04/2007, 12h10
  2. Opération en colonne dans une requête
    Par mooh91 dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 10/02/2007, 06h07
  3. nom de colonne dans une variable
    Par cyclone_yas dans le forum SQL
    Réponses: 12
    Dernier message: 27/12/2006, 11h41
  4. fusion de 2 colonnes dans une requête select?
    Par epeichette dans le forum Requêtes
    Réponses: 1
    Dernier message: 05/11/2005, 00h05
  5. Noms de colonne dans une colonne
    Par Digirom dans le forum Langage SQL
    Réponses: 14
    Dernier message: 23/04/2004, 12h51

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