次の表を検討してください。
declare @table as table (
GL_Group_Code varchar(8),
GL_Branch_Code varchar(8),
Account_Number varchar(4),
GL_Centre_Number varchar(6)
)
insert into @table
select '0100', '0110', '1200', 'S10118' union
select '0100', '0110', '1580', 'S16053' union
select '0200', '0210', '2050', '200049' union
select '0200', '0210', '2050', '782844'
望ましい結果は、次の 4 つのソース列にわたる親子関係です。
declare @table_hier as table (
Parent_ID varchar(8),
Item_ID varchar(8)
)
列 1、2、3、4 の関係順序では、ソース テーブルの最初の行の結果は次のようになります。
null 0100
0100 0110
0110 1200
1200 S10118
2 行目は次のようになります。
null 0100
0100 0110
0110 1580
1580 S16053
関係の順序は、1、2、4、3、3、4、または 1、3、4 のように変化します。
私は再帰的なCTEを考えていますが、金曜日の後半にはほとんど助けがありませんでした。