Resultados inesperados do CTE

Eu criei um processo complexo que usa vários CTEs (principalmente para trabalho hierárquico recursivo).
Em conjuntos de dados de amostra pequenos, tudo funciona conforme esperado, mas quando aplico o código a grandes conjuntos de dados recebi resultados inesperados (e errados).

Acho que reduzi o trabalho para os CTEs. Os CTEs recursivos são dados "alimentados" processados ​​em vários CTEs anteriores, e esse parece ser o problema.

Eu configurei umconjunto de dados de amostra do seguinte modo:

Quatro linhas com dados exclusivosCada linha recebe um número de linha aleatória (isso é adicionado em um CTE

Então eu tomo os resultados do primeiro CTE e executo uma auto-adesão em um segundo CTE.
Eu esperava que todas as linhas se juntassem, cada uma a si mesma. O que realmente acontece é que as linhas desiguais se juntam.

Alguém pode oferecer uma explicação para esse comportamento?

questionAnswers(1)

yourAnswerToTheQuestion