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 :

Soucis de jointure


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Soucis de jointure
    Salut à tous j'ai un petit soucis de jointure sur une requête la condition en rouge dans la code bloque le retour des lignes si elle n'est pas remplie jusque la c'est logique.

    Mais je n' ai pas trouvé comment modifier la jointure pour obtenir quand même les lignes comme dans la condition qui la suit par exemple.

    Si je supprime la condition tout fonctionne mais avec trop de ligne.

    J'espère avoir été clair et merci pour votre aide.

    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
    20
    21
    22
    23
    24
    25
    26
    select emp.COMMERCE_ID,
           emp.FULL_NAM,
           remun.REHRBM,
           nvl(rub.rubmnt00 ,0) Anc,
           sap.premium_team_percent equip,
           decode(pos.polcatp, 'EMPLOYE', 165, 0) PR_Vac
      from employee_cur_all   emp,
           vision.remun       remun,
           vision.positp      pos,
           fr_payroll_non_sap sap,
           vision.rubrique    rub
     where emp.COMMERCE_ID = sap.commerce_id
       and rub.rubcode='0270'
       and rub.etcmat = emp.COMMERCE_ID(+)
       and rub.rubdate = (select max(rub2.rubdate)
                            from vision.rubrique rub2
                           where rub2.etcmat = emp.COMMERCE_ID)
       and remun.etcmat = emp.COMMERCE_ID
       and pos.etcmat = emp.COMMERCE_ID
       and pos.h1dfin is null
       and remun.h1dfin is null
       and sap.eff_beg_dt =
           (select max(sap2.eff_beg_dt)
              from fr_payroll_non_sap sap2
             where sap2.commerce_id = emp.COMMERCE_ID)
       and emp.COMMERCE_ID = 'XXXXXXX'

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Et non, ce n'est pas très clair.

    Vous voulez faire une jointure externe c'est ça ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Et non, ce n'est pas très clair.

    Vous voulez faire une jointure externe c'est ça ?
    Exactement je veux que même si la conditions n'est pas remplie les lignes apparaissent avec les infos des autres tables et null pour la colonne issue de la table rub.

    j'ai testé, les deux autres conditions sur la table rub ne sont pas bloquantes mais celle ci oui.

    Merci de ton aide

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    J'en profite pour remettre la syntaxe de votre requête aux normes actuelles.
    Essayez cette requête :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    select emp.commerce_id,
           emp.full_nam,
           remun.rehrbm,
           coalesce(rub.rubmnt00 ,0) as anc,
           sap.premium_team_percent as equip,
           case pos.polcatp when 'EMPLOYE' then 165 else 0 end as pr_vac
      from employee_cur_all   emp
           inner join fr_payroll_non_sap sap
             on sap.commerce_id = emp.commerce_id
           inner join vision.remun remun
             on remun.etcmat = emp.commerce_id
           inner join vision.positp pos
             on pos.etcmat = emp.commerce_id
           left outer join vision.rubrique rub
           inner join (  select etcmat, max(rubdate) as max_rubdate
                           from vision.rubrique
                       group by etcmat ) ru2
             on ru2.etcmat      = rub.etcmat
            and ru2.max_rubdate = rub.rubdate
             on rub.etcmat  = emp.commerce_id
            and rub.rubcode = '0270'
     where emp.commerce_id  = 'XXXXXXX'
       and pos.h1dfin   is null
       and remun.h1dfin is null
       and sap.eff_beg_dt = (select max(sap2.eff_beg_dt)
                               from fr_payroll_non_sap sap2
                              where sap2.commerce_id = emp.commerce_id);

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Magnifique cela fonctionne, je vais devoir me mettre sérieusement à une notation moderne.

    Merci beaucoup.

  6. #6
    Membre confirmé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Points : 502
    Points
    502
    Par défaut
    Citation Envoyé par Joseph31 Voir le message
    Magnifique cela fonctionne, je vais devoir me mettre sérieusement à une notation moderne.

    Merci beaucoup.
    Moderne de 1992

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par juvamine Voir le message
    Moderne de 1992
    si on sort un pied des abris c'est Beyrouth mais bon ok bien visé

    on dira une notation plus normalisée alors

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

Discussions similaires

  1. [Informatica PowerCenter V7.1.1] : soucis de jointure ou bug?
    Par StéphanieB. dans le forum Informatica
    Réponses: 1
    Dernier message: 14/04/2010, 17h40
  2. Souci de jointures externes multiples
    Par dJe781 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 09/02/2009, 14h25
  3. soucis de jointure sur plusieurs critères "left join ON . AND ON ."
    Par Moutonstar dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 24/11/2008, 17h22
  4. Petit soucis de jointure
    Par grunk dans le forum Requêtes
    Réponses: 2
    Dernier message: 12/09/2007, 16h00
  5. [Débutant]Soucis requête jointure externes (8-i)
    Par jdotti dans le forum Oracle
    Réponses: 7
    Dernier message: 14/10/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