Non è possibile accedere a un alias da un join all'interno di un'altra sottoquery unita. Dovrai utilizzare quanto segue che unisce la sottoquery su due colonne/tabelle:
SELECT *
FROM TableA a
INNER JOIN TableB b
ON b.B1=a.A1
INNER JOIN
(
SELECT *
FROM TableC c
) d
ON d.C2=b.B2
AND d.C1 = b.B1
Oppure può essere scritto come:
SELECT *
FROM TableA a
INNER JOIN TableB b
ON b.B1=a.A1
INNER JOIN TableC c
ON c.C2=b.B2
AND c.C1 = b.B1