セミコロン( ; )文字を使用して前のステートメントからCTEを区切る必要があります。
;
ie ;WITH CommonTableName (...) SELECT ... FROM CommonTableName ...
;WITH CommonTableName (...) SELECT ... FROM CommonTableName ...
CTEの有効範囲は単一のバッチで、その定義の下流にのみあります。バッチには複数のCTEが含まれていてもよく、CTEはバッチで先に定義された別のCTEを参照するかもしれませんが、CTEは後でそのバッチで定義される別のCTEを参照しません。