• Good stuff! 
    By the way if I copy/paste your code to SSMS I receive: 
    Msg 319, Level 15, State 1, Line 22
    Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon.
    Msg 319, Level 15, State 1, Line 23
    Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon.