Oracle propriétaire rejoint en les rejoignant sur plusieurs conditions

J'ai le follwing 2 versions de conforme à la norme ANSI SQL(colonne/table les noms ont été changés pour protéger les données confidentielles), dont l'un d'eux répond à ma demande par la suite le droit de la logique, tandis que l'autre ne l'est pas.

1)ANSI Joindre 1-Travaux

SELECT b.COLUMN_A,
  COUNT(a.COLUMN_A)
FROM TABLE1 a
RIGHT OUTER JOIN
  (SELECT COLUMN_A FROM TABLE2 WHERE COLUMN_X='TEST') b
ON  a.COLUMN_A = b.COLUMN_A
AND a.COLUMN_B in (SELECT FROM TABLE3 WHERE COLUMN_Y=5)  --WORKS
GROUP BY b.COLUMN_A

1) donne de sortie comme ceci:

COLUMN_A  COUNT(COLUMN_A)
--------------------------
A       0
B       0
C       1
D       1
E       0

2)ANSI 2-Ne fonctionne pas

SELECT b.COLUMN_A,
  COUNT(a.COLUMN_A)
FROM TABLE1 a
RIGHT OUTER JOIN
  (SELECT COLUMN_A FROM TABLE2 WHERE COLUMN_X='TEST') b
ON  a.COLUMN_A = b.COLUMN_A
WHERE
a.COLUMN_B in (SELECT FROM TABLE3 WHERE COLUMN_Y=5)      --DOESN'T WORK
GROUP BY b.COLUMN_A

3)Oracle propriétaire rejoignez-Ne fonctionne pas

SELECT b.COLUMN_A,
  COUNT(a.COLUMN_A)
FROM TABLE1 a,(SELECT COLUMN_A FROM TABLE2 WHERE COLUMN_X='TEST') b
WHERE
a.COLUMN_A(+) = b.COLUMN_A
AND a.COLUMN_B in (SELECT FROM TABLE3 WHERE COLUMN_Y=5) --DOESN'T WORK
GROUP BY b.COLUMN_A

2) & 3) donne de sortie comme ceci:

COLUMN_A  COUNT(COLUMN_A)
--------------------------
C       1
D       1

Je comprends (2,ANSI) & (3 PROPRIÉTAIRES) sont équivalentes. Mais Est-il équivalent de propriété SQL pour (1,ANSI)?.
Toute aide serait la bienvenue.
Merci.
Edit: j'ai mis à jour la question avec l'exemple de sortie.

Vous pouvez ajouter de l'information pour la rendre claire, ce que la sortie désirée ressemble, et ce que vous obtenez dans les mauvaises situations.

OriginalL'auteur komedit1 | 2011-04-29