मुझे यकीन नहीं है कि "वर्तमान" मानों के लिए "प्रस्तावित" मानों के बराबर अनुक्रम संख्या प्राप्त करने के लिए आपको वास्तव में एक संख्या/टैली तालिका जितनी एक पुनरावर्ती क्वेरी की आवश्यकता है।
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