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 :

Jointure conditionnelle SQL


Sujet :

DB2

  1. #1
    Nouveau Candidat au Club
    Jointure conditionnelle SQL
    Bonjour,
    J'ai besoin de réaliser la requête SQL suivante :
    Je dispose d'un fichier maitre (commandes) et de 2 fichiers adresses. Je veux restituer l'adresse de livraison de la commande avec la contrainte suivante :
    Si elle existe dans le fichier adresse 1, je la restitue, sinon je restitue celle du fichier adresse 2.
    Ma relation entre fichiers est : Maitre à fichier adresse 1 : 0 ou 1 ; Maitre à fichier adresse 2 : toujours 1.
    Merci pour votre aide

  2. #2
    Modérateur

    Quelque chose dans ce goût là :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT  cmd.*
        ,   COALESCE(ad1.adresse, ad2.adresse)  AS adresse
    FROM    commande    AS  cmd
        LEFT JOIN
            adresse1    AS  ad1
            ON  cmd.??? = ad1.???
        INNER JOIN
            adresse2    AS  ad2
            ON  cmd.??? = ad2.???
    ;
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  3. #3
    Nouveau Candidat au Club
    Cela est presque super !

    il reste un petit problème à résoudre, en effet au final je veux obtenir les zones adresses qui sont nommées pareil dans les 2 fichiers : ex adr1
    j'ai donc besoin d'un SELECT adr1, mais comment l'exprimer ?

  4. #4
    Modérateur

    Je crois que tu as besoin d'un petit rappel sur les bases du langage SQL, les jointures, les alias, etc.
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  5. #5
    Nouveau Candidat au Club
    ... La première réponse était super, ... la deuxième un peu moins bien !
    Si quelqu'un peut m'aider, ce n'est pas parceque je n'ai pas toutes les bases que je ne peux pas m'améliorer !

  6. #6
    Expert éminent
    Sauf que là tu ne demandes pas une aide tu demandes la solution clé en main ... Donc lis la doc mentionnée dans le post de al1_24 et après cela on pourra t'aider si tu rencontres des problèmes dans l'exécution de ta requête.

###raw>template_hook.ano_emploi###