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 :

Réafficher une ligne autant de fois que la valeur de certains champs de la même ligne


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Réafficher une ligne autant de fois que la valeur de certains champs de la même ligne
    Bonjour communauté,

    d'habitude je trouve des réponses à mes question dans l'archive du forum, mais cette fois-ci je vous écrit car je suis vraiment bloqué !

    J'ai une table comme celle la :
    Table1 :
    -----------------
    -- ID | A | B | C |
    1057 | 0 | 0 | 1 |
    1058 | 1 | 1 | 0 |
    1059 | 1 | 1 | 1 |
    -----------------

    et je souhaite obtenir à partir de cette Table1 une deuxième table sous cette forme :

    ------------
    -- ID | Lettre |
    1057 | A |
    1058 | A |
    1058 | B |
    1059 | A |
    1059 | B |
    1059 | C |
    ------------

    Je m'explique;
    Sachant que les colonnes A, B et C sont de type booléen (soit 1 soit 0),
    je veux extraire chaque ligne de la Table1 autant de fois que les trois colonnes égale à 1, et afficher dans chaque nouvelle ligne que la colonne ID avec le nom de la lettre qui égale à 1.

    Je vous remercie d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 788
    Points
    30 788
    Par défaut
    Ce n'est qu'une simple UNION...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    select  id
        ,   'A' as lettre
    from    matable
    where   a   = 1
    union all
    select  id
        ,   'B'
    from    matable
    where   b   = 1
    union all
    select  id
        ,   'C'
    from    matable
    where   c   = 1
    order by id, lettre
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 133
    Points : 38 556
    Points
    38 556
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Dans l'exemple de résultat attendu, je suppose que la 1ère ligne est plutôt 1057 - C, sinon la règle n'est pas claire

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    ça résout parfaitement le problème. Merci bcp !


    Citation Envoyé par al1_24 Voir le message
    Ce n'est qu'une simple UNION...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    select  id
        ,   'A' as lettre
    from    matable
    where   a   = 1
    union all
    select  id
        ,   'B'
    from    matable
    where   b   = 1
    union all
    select  id
        ,   'C'
    from    matable
    where   c   = 1
    order by id, lettre

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/06/2011, 17h04
  2. un input=>autant de sorties que de valeurs d'un champ de la table d'entrée
    Par mathieu_r dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 20/04/2009, 16h17
  3. Réponses: 13
    Dernier message: 23/12/2007, 20h56
  4. faire une requete qui ne sort que les valeurs d'un champ coché
    Par joseph.breham dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 13/12/2006, 16h01
  5. Autant de formulaires que la valeur d'une variable
    Par suolan dans le forum Langage
    Réponses: 5
    Dernier message: 12/05/2006, 14h16

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