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

DB2 Discussion :

Problèmes pour joindre deux tables !


Sujet :

DB2

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 40
    Points : 18
    Points
    18
    Par défaut Problèmes pour joindre deux tables !
    Bonjour à tous,
    Merci d'avance pour toutes aides apportées. Novice sur sql et db2, j'essaie de croiser les données de deux tables par le biais d'une jointure. En essayant d'être clair, voici ce que je voulais faire : effectuer un tri sur la table ITV_RIB rapprocher celui-ci par rapport aux données d'une colonne située dans une autre table (ITV_MIS). Mon résultat actuel est un magnifique tableau vide. Merci encore !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select distinct ITV_RIB.NUM_ITV,ITV_MIS.COD_USR
    from ITV_RIB, ITV_MIS
    where ITV_RIB.NUM_ITV=ITV_MIS.COD_USR and ITV_RIB.NUM_ITV in(select NUM_ITV from ITV_RIB
    where NUM_RIB='194'or COD_ADM!='889')

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,

    tout sur les jointures c'est par ici :
    http://sqlpro.developpez.com/cours/sqlaz/jointures/

    Concernant votre requête vous y mettez une certaine redondance inutile mais ca devrait fonctionner.

    Donc si vous n'obtenez aucun résultat c'est que vous n'avez aucun résultat sélectionnable.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT DISTINCT a.NUM_ITV, b.COD_USR
    FROM ITV_RIB a
    inner join ITV_MIS b on a.NUM_ITV = b.COD_USR
    WHERE  a.NUM_RIB = '194' OR a.COD_ADM <> '889'

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 40
    Points : 18
    Points
    18
    Par défaut Soucis !
    Merci pour l'aide apportée, mais je reste bien embêté, je suis sûr que sur les deux tables, des colonnes se correspondent notamment NUM_ITV. Si je vous suis, si je n'ai pas de résultats sélectionnables, c'est que je ne peux pas créer de liens entre les différentes données des deux tables. Cela compliquerait beaucoup les choses pour trouver une solution à mon problème.
    Merci encore.

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Procurez un jeux de donnée réelle, description des tables.

    + résultat attendu avec vos données réelles.


    A partir de là on pourra avancer.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Je vais tâcher d'être plus précis, merci encore.
    ITV_MIS
    ITV_MIS NUM_ITV 1 CHAR 13 13
    ITV_MIS SER_DEM 4 INTEGER 10 4
    ITV_MIS COD_USR 1 CHAR 13 13
    ITV_MIS ITV_RAP 1 CHAR 13 13
    ITV_MIS COD_QUA 1 CHAR 5 5
    ITV_MIS DATE 93 TIMESTAMP 26 16
    ITV_MIS AFF_AUT 1 CHAR 1 1
    ITV_MIS MIS_ASS 4 INTEGER 10 4
    ITV_MIS AFF_OBS 12 VARCHAR 1000 1000
    ITV_RIB
    ITV_RIB NUM_ITV 1 CHAR 13 13
    ITV_RIB NUM_RIB 1 CHAR 3 3
    ITV_RIB NUM_TEL 1 CHAR 3 3
    ITV_RIB MOD_PAI 1 CHAR 2 2
    ITV_RIB COD_ADM 1 CHAR 3 3

    Le tableau auquel, je voudrais finir par aboutir:
    COD_USR NUM_ITV
    Monsieur 100
    X a traité 101 avec conditions à retenir en ITV_RIB
    les demandes
    du N°

  6. #6
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    D'après votre clause WHERE, vous excluez du résultat toutes les lignes pour lesquelles COD_ADM est différent de '889', y compris celles pour lesquelles NUM_RIB est égal à '194'. Est-ce bien ce que vous souhaitez ?
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  7. #7
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    hmm la jointure entre vos 2 tables ne devrait-elle pas ce faire sur NUM_ITV ? au lieu de NUM_ITV & COD_USR ?


    ce qui donnerai
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT DISTINCT a.NUM_ITV, b.COD_USR
    FROM ITV_RIB a
    INNER JOIN ITV_MIS b ON a.NUM_ITV = b.NUM_ITV
    WHERE  a.NUM_RIB = '194' OR a.COD_ADM <> '889'

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 40
    Points : 18
    Points
    18
    Par défaut Un énorme merci !
    Bonjour à tous !!!
    Problème résolu grâce à vos précieuses indications. Effectivement, ma question était mal posée. Je pensais qu'une fois des colonnes correspondantes trouvées dans deux tables, on pouvait faire une jointure entre n'importe quelles colonnes. Je m'aperçois que c'est plus compliqué que cela. Merci à tous !!!

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

Discussions similaires

  1. Problème pour joindre deux fichiers entre eux
    Par Il_TiRaNNo dans le forum Linux
    Réponses: 1
    Dernier message: 15/12/2009, 12h28
  2. Réponses: 5
    Dernier message: 29/03/2007, 16h00
  3. [D7-ACCESS-ADO] Joindre deux tables
    Par dleu dans le forum Bases de données
    Réponses: 6
    Dernier message: 25/11/2006, 14h16
  4. Besoin d'aide pour joindre deux requetes
    Par ganga dans le forum Langage SQL
    Réponses: 5
    Dernier message: 05/06/2006, 15h35
  5. Problème pour lier deux tables
    Par balabonov dans le forum Access
    Réponses: 8
    Dernier message: 21/12/2005, 13h13

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