Bonjour à toutes et tous

Désolé pour le titre très flou, je n'ai pas su décrire correctement mon besoin. Je vais donc passer par un exemple :

Je dispose de 3 tables (SQL Server) et des données suivantes :

Table A
Table B
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
IDb, IDa, ordre, deb, fin
17, 7, 1, faux, vrai
18, 7, 2, faux, vrai
19, 7, 3, faux, faux
Table C
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
IDc, IDb, IDa
27, 18, 7
La requête actuelle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SELECT B.IDb, B.ordre, A.titre
FROM A, B, C
WHERE B.IDa = A.IDa AND B.IDb = C.IDb
Résultat actuel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
IDb, ordre, titre
18, 2, toto
Je souhaite rajouter une condition :

Si l'enregistrement de B (ici le 18) a son champ fin = vrai et que l'enregistrement suivant (ici le 19) a son champ deb = faux alors renvoyer ce dernier enregistrement (soit le 19). Dans le cas contraire, même comportement que la requête actuelle (donc le 18). Soit :

Résultat souhaité
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
IDb, ordre, titre
19, 3, toto
Question : comment modifier ma requête pour rajouter cette condition ?

Merci d'avance à tous.