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

Requêtes et SQL. Discussion :

[Requête] regroupement de 2 tables avec champs différents


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Points : 79
    Points
    79
    Par défaut [Requête] regroupement de 2 tables avec champs différents
    Bonjour,

    Je me demande s'il est possible de grouper l'information de deux tables qui possèdent certaines champs communs. Je voudrais une requête qui me donne le résultat de tous les enregistrements de la table_A qui contient les données des employés actifs (champs:ID_employé,nom,prénom,age,NAS) et tous les enregistrements de la table_B qui contient certaines des informations des anciens employés (ID_employé, nom, prénom,vacance, maladie). le résultat ressemblerait à quelques choses du genre:

    ID_employé/ nom / prénom /age / NAS /vacance /maladie
    0001 /Leblanc / Marc / 21 /123-321-432 / - / -
    0002 /Durel / Luc / 30 / 234-432-543 / - / -
    0003 /White / Andrew / - / - / 18 / 3
    0004 /black / lucy / - / - / 12 / 1
    0005 /Duff / Marie / - / - / 15 / 10


    Merci

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Tu peux faire une requête UNION
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT ID_employé,nom,prénom,age,NAS, Null As vacance, Null As maladie
    FROM Table_A
    WHERE ...
     
    UNION
     
    SELECT ID_employé, nom, prénom, Null As age, Null As NAS, vacance, maladie
    FROM Table_B
    WHERE ...
    Les deux SELECT doivent avoir le même nombre de colonnes et elles doivent bien sûr être dans le même ordre.

    A+

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par LedZeppII
    Bonjour,

    Tu peux faire une requête UNION
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT ID_employé,nom,prénom,age,NAS, Null As vacance, Null As maladie
    FROM Table_A
    WHERE ...
     
    UNION
     
    SELECT ID_employé, nom, prénom, Null As age, Null As NAS, vacance, maladie
    FROM Table_B
    WHERE ...
    Les deux SELECT doivent avoir le même nombre de colonnes et elles doivent bien sûr être dans le même ordre.

    A+
    Ce code m'aide beaucoup. Cependant, j'obtiens des résultats de ce genre "" dans les champs pour le résultat de la table_A. Est-ce que vous s'avez d'ou peu bien venir ce problème ?

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Pour les champs vacance et malidie, c'est normal.
    Comme ils n'existent pas dans la table Table_A je les remplace par NULL.
    Si tu veux un tiret :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT ID_employé,nom,prénom,age,NAS, "-" AS vacance, "-" AS maladie
    FROM Table_A
    WHERE ...
     
    UNION
     
    SELECT ID_employé, nom, prénom, "-" AS age, "-" AS NAS, vacance, maladie
    FROM Table_B
    WHERE ...
    L'inconvenient est que comme "-" est du texte, les champs age, vacance, maladie seront convertis en texte
    dans le résultat de la requête.

    A+

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par LedZeppII
    Pour les champs vacance et malidie, c'est normal.
    Comme ils n'existent pas dans la table Table_A je les remplace par NULL.
    Si tu veux un tiret :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT ID_employé,nom,prénom,age,NAS, "-" AS vacance, "-" AS maladie
    FROM Table_A
    WHERE ...
     
    UNION
     
    SELECT ID_employé, nom, prénom, "-" AS age, "-" AS NAS, vacance, maladie
    FROM Table_B
    WHERE ...
    L'inconvenient est que comme "-" est du texte, les champs age, vacance, maladie seront convertis en texte
    dans le résultat de la requête.

    A+
    Merci pour tous. Ca marche.

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

Discussions similaires

  1. [MySQL-5.1] Fusion 2 tables avec champs différents et nombre lignes différentes
    Par avairet dans le forum Requêtes
    Réponses: 3
    Dernier message: 04/05/2013, 03h37
  2. [AC-2007] ajout de deux tables avec champs différents
    Par cedric pouilly dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 09/04/2013, 18h49
  3. Fusionner deux tables avec champs différents
    Par CyberMen dans le forum Débutez
    Réponses: 6
    Dernier message: 22/08/2012, 18h32
  4. Réponses: 4
    Dernier message: 22/11/2007, 19h23
  5. [Requête] Union de 2 tables avec des colonnes différentes
    Par ceuce dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/05/2007, 17h04

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