Ich bin mir nicht sicher, ob Sie wirklich eine rekursive Abfrage sowie eine Numbers/Tally-Tabelle benötigen, um die entsprechenden Sequenznummern für die "AKTUELLEN" Werte wie die der "VORSCHLAGTEN" Werte zu erhalten.
With
Numbers As
(
Select Row_Number() Over ( Order By C1.object_id ) As Value
From sys.columns As C1
Cross Join sys.columns As C2
)
, ProposedSequences As
(
Select NTRIId
, Row_Number() Over ( Order By NTRIId ) As Sequence
From Table
Where NTRITCode = 'PROPOSED'
Group By NTRIId
)
, CurrentSequences As
(
Select RID, NTRITCode, NTRIId, Parameter, Usage, Rate
, Numbers.Value As Sequence
From Table
Cross Join Numbers
Where NTRITCode = 'Current'
And Numbers.Value <= (Select Max(Sequence) From ProposedSequence)
)
Select Sequence, RID, NTRITCode, NTRIId, Parameter, Usage, Rate
From CurrentSequences
Union All
Select PS.Sequence, T.RID, T.NTRITCode, T.NTRIId, T.Parameter, T.Usage, T.Rate
From ProposedSequences As PS
Join Table As T
On T.NTRIId = PS.NTRIId
Order By PS.Sequence, T.NTRITCode