У меня есть проблема: Таблица I:SQL, OrgNode, Иерархия
SELECT OrgNode as 'hierarchyid'
, OrgLevel as "non-type '
, UniCODOBJ as 'uniqueidentifier'
, BitREQUIRED as "bit"
, StrField as 'nvarchar (50)'
, StrTITLE_FIELD as 'nvarchar (50)'
, IntCODE_LENGTH as 'int'
OF BOX_HIERARCHY
и у меня есть запрос:
DECLARE @CurrentNode hierarchyid
SELECT @ CurrentNode = OrgNode
OF BOX_HIERARCHY
where uniCODOBJ = 'CBC33732-2E4C-4103-887A-B968E53C0E05';
SELECT OrgNode, OrgNode.ToString()
, OrgLevel
, uniCODOBJ
, bitREQUIRED
, strField
, strTITLE_FIELD
, intCODE_LENGTH
of BOX_HIERARCHY
where OrgNode.IsDescendantOf (@CurrentNode) = 1
но, этот запрос возвращает:
OrgNode OrgNode.string OrgLevel BitRequired
0x78/3/1 1
0x7AC0/3/1/2 1
0x7AD6/3/1/1/3 0
0x7AD6B0/3/1/1/1/4 0
0x7AD6B580/3/1/1/1/1/5 1
0x7AD6B5AC/3/1/1/1/1/1/6 1
потому что OrgNode -> 0x78 имеют uniCODOBJ: CBC33732-2E4C-4103-887A-B968E53C0E05
где моя проблема? прямой сын необходимо только:
с OrgNode -> 0x78 имеют только 1 прямые дети
OrgNode OrgNode.string OrgLevel BitRequired
0x78/3/1 1
0x7AC0/3/1/2 1
с OrgNode -> 0x7AC0 3 Возможные прямые детей OrgNode OrgNode.string OrgLevel BitRequired
0x7AC0/3/1/2 1
0x7AD6/3/1/1/3 0
0x7AD6B0/3/1/1/1/4 0
0x7AD6B580/3/1/1/1/1/5 1
мой я заинтересован, чтобы получить запрос с КН чтобы получить все возможные прямые дети , но этот запрос возвращает мне всех родственников детей , если мне нужно пройти 3 уровня, как в случае с 0x7AD6B5AC, на уровне 6, с 3 уровнями ПОСЛЕДНИЕ 0x78 и сделать консультацию для 0x78, он возвращает мне все, что мне все равно.