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é :
Num PrixFacturé 128 50
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 :
J'obtiens le résutltat suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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'
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 !
Partager