|
select F.ID, F.NAIM, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD, PARENT_CHILD from ( select E.ID+CStr(E.NUM) as ID, (select Max(iif(D.LEV=E.LEV-1 and D.NUM<=E.NUM,D.ID,'0'))+CStr(Max(iif(D.LEV=E.LEV-1 and D.NUM<=E.NUM,D.NUM, 0)))+'='+ Min(iif(D.LEV=E.LEV+1 and D.NUM>=E.NUM,D.ID,'Z'))+CStr(Min(iif(D.LEV=E.LEV+1 and D.NUM>=E.NUM,D.NUM,99)))+'='+ Mid(Max(D.ROLE),6) from ( select C.* from ( select A.NUM, CStr(B.NUM) as LEV, Choose(B.NUM, 'C','D','E','F','G', Null ) as ID, Choose(B.NUM, [C],[D],[E],[F],[G], Null ) as NAIM, Right('00000'+CStr(A.NUM),5)+A.C as ROLE from [Excel 12.0 Xml;HDR=YES;IMEX=0;DATABASE=C:\WORK\EXPORT\Scale_2017_11_00.xlsm].[SPP_KPI$A2:L] as A, (select NUM from [Export] where NUM<=5 ) as B ) as C where not C.NAIM is Null ) as D where D.NUM<=E.NUM ) as PARENT_CHILD, E.NAIM, E.STAKE, E.NOTE, E.SCALE, E.TYPE, E.KIND from (select C.* from ( select A.NUM, CStr(B.NUM) as LEV, Choose(B.NUM, 'C','D','E','F','G', Null ) as ID, Choose(B.NUM, [C],[D],[E],[F],[G], Null ) as NAIM, A.STAKE, A.NOTE, A.SCALE, A.TYPE, A.KIND from [Excel 12.0 Xml;HDR=YES;IMEX=0;DATABASE=C:\WORK\EXPORT\Scale_2017_11_00.xlsm].[SPP_KPI$A2:L] as A, (select NUM from [Export] where NUM<=5 ) as B ) as C where not C.NAIM is Null ) as E order by E.NUM,E.LEV ) as F
http://www.sql.ru/forum/1280217/kak-zafiksirovat-znachenie-polya