Jointure conditionnelle - CASE WHEN dans la clause FROM
Bonjour,
Je cherche à résoudre un problème en utilisant des jointures conditionnelles. Je les utilise couramment, mais dans le cas suivant :
Table n°1 : BonLivr
Num |
Client |
Chantier |
128 |
Jean |
Lille |
214 |
Jean |
Paris |
Table n°2 : PrixRemis
Client |
Chantier |
Prix |
Jean |
Lille |
50 |
Jean |
CONTRAT |
70 |
Résultat souhaité :
Mon client Jean a un contrat pour un prix à 70. Pour son chantier Lille, je lui fais un prix à 50.
Ma requete est la suivante :
Code:
1 2 3 4 5
| SELECT BonLivr.num, PrixRemis.Prix
FROM BonLivr INNER JOIN PrixRemis ON BonLivr.Client = PrixRemis.Client AND CASE WHEN BonLivr.Chantier = PrixRemis.Chantier THEN BonLivr.Chantier ELSE 'CONTRAT' END = PrixRemis.Chantier
WHERE BonLivr.Num = '128' |
J'obtiens le résutltat suivant :
Num |
PrixFacturé |
128 |
50 |
128 |
70 |
Je ne comprends pas pourquoi j'obtiens 2 lignes, alors que le CASE ne devrait sélectionner que le cas où Chantier = Lille...
Merci d'avance pour vos réponses.
Bonne fin de journée !