p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Membre éclairé
    Homme Profil pro
    Etudiant administrateur systèmes et réseaux
    Inscrit en
    octobre 2007
    Messages
    635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Etudiant administrateur systèmes et réseaux

    Informations forums :
    Inscription : octobre 2007
    Messages : 635
    Points : 389
    Points
    389

    Par défaut Ajouter des champs à une requête après/avant execution.

    Bonjour,

    J'ai une requête A qui me retourne 2 valeurs.
    Requête A : select champ1, champ2 FROM tableA
    Résultat A: champ1, champ2.

    Seulement j'aimerai pouvoir inverser ligne/colonne. Pour cela, j'utilise UNION qui me donne alors une requête B.

    Requête B :
    select champ1 FROM tableA
    UNION
    select champ2 FROM tableB

    Résultat B
    champ1
    champ2

    Au résultat B, je souhaiterai rajouter une colonne au début qui donne la désignation des valeurs car j'ai ensuite un module qui s'occupe d'afficher selon un graphique choisis, ces valeurs. Mais pour qu'il fonctionne il a besoin d'un tableau Ligne*2.

    Résultat B
    designation1 champ1
    désignation2 champ2

    J'ai naïvement essayé :

    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
    16
    17
    18
    19
    CREATE TABLE T1
    (
     champ1 varchar(50)
    );
     
    CREATE TABLE T2
    (
     champ1 varchar(50)
    );
     
    INSERT INTO T1 ([champ1]) VALUES('designation1');
    INSERT INTO T2 ([champ1]) VALUES('designation2');
     
    SELECT A.champ1, B.champ1 FROM T1 A, tableA B;
    UNION
    SELECT C.champ1, D.champ1 FROM T2 C, tableB D;
     
    DROP TABLE T1;
    DROP TABLE T2;
    Et même si la requête s’exécute sans erreur, pas, d'affichage du résultat.
    La contrainte, c'est que les tables T1 et T2 doivent rester transparentes pour l'utilisateur de la requête et donc, elles ne peuvent être que temporaires pour l’exécution de cette requête.

    Comme pourrais-je m'y prendre pour solutionner ceci ?

    Merci d'avance.
    UNE REPONSE UTILE : &|| UN PROBLEME RESOLU :

  2. #2
    Membre confirmé Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : février 2006
    Messages : 427
    Points : 260
    Points
    260

    Par défaut

    Bonjour!

    Tes désignations dont tu parles sont "fixes" i.e non variables?

    Tu devrais écrire tes jointures selon la norme, c'est plus clair :

    BAD !
    SELECT A.col1, B.col2
    FROM TABLE_A A, TABLE_B B
    WHERE A.ID = B.ID

    GOOD
    SELECT A.col1, B.col2
    FROM TABLE_A A
    INNER JOIN TABLE_B ON A.ID = B.ID
    D'ailleurs je me rend compte que tu n'as pas de condition de jointure dans ta requête est-ce normal?
    define: Programmeur : Celui qui résout un problème que vous n'aviez pas, d'une façon que vous ne comprenez pas.

  3. #3
    Membre chevronné
    Homme Profil pro
    Inscrit en
    juin 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : juin 2011
    Messages : 442
    Points : 612
    Points
    612

    Par défaut

    C'est trop simple pour être ce que tu cherches, mais au cas où :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT 'designation1' AS Designation, champ1 AS Valeur FROM laTable
    UNION
    SELECT 'designation2', champ2 FROM laTable;

  4. #4
    Membre éclairé
    Homme Profil pro
    Etudiant administrateur systèmes et réseaux
    Inscrit en
    octobre 2007
    Messages
    635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Etudiant administrateur systèmes et réseaux

    Informations forums :
    Inscription : octobre 2007
    Messages : 635
    Points : 389
    Points
    389

    Par défaut

    Nan nan, je ne fais pas de jointure. C'était juste une façon dégueulasse d'essayer de mettre les lignes en légende.

    Je vais essayer la 2ème réponse. Je n'ai plus la base sous la main, je testerai demain. Merci bien !
    UNE REPONSE UTILE : &|| UN PROBLEME RESOLU :

  5. #5
    Membre éclairé
    Homme Profil pro
    Etudiant administrateur systèmes et réseaux
    Inscrit en
    octobre 2007
    Messages
    635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Etudiant administrateur systèmes et réseaux

    Informations forums :
    Inscription : octobre 2007
    Messages : 635
    Points : 389
    Points
    389

    Par défaut

    Citation Envoyé par Fred_34 Voir le message
    C'est trop simple pour être ce que tu cherches, mais au cas où :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT 'designation1' AS Designation, champ1 AS Valeur FROM laTable
    UNION
    SELECT 'designation2', champ2 FROM laTable;
    Merci, trop simple ? peut être, mais c'est exactement ce dont j'avais besoin. Merci beaucoup pour votre aide !
    UNE REPONSE UTILE : &|| UN PROBLEME RESOLU :

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

Discussions similaires

  1. Simuler une jointure pour ajouter des champs à une table
    Par Camelia17 dans le forum DataStage
    Réponses: 0
    Dernier message: 28/01/2015, 16h18
  2. [DAO] Access 2002 - ajouter des champs à une clé
    Par helje dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/12/2008, 10h49
  3. Ajouter des champs dans une table à la volée ?
    Par _Epy_ dans le forum PHP & MySQL
    Réponses: 5
    Dernier message: 03/05/2007, 09h05
  4. Ajouter des champ dans une table avec une procedure sp
    Par Abdou1 dans le forum MS SQL-Server
    Réponses: 5
    Dernier message: 26/07/2006, 18h32
  5. Ajouter des CHAMPS dans une table via ASP
    Par hysteresis dans le forum Access
    Réponses: 1
    Dernier message: 27/09/2005, 15h39

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