数据库操作之——二维表如何按树状展开

场景是这样子的,进入星空,我们看到功能是这样分布的:
领域-模块-功能分组-功能,那么我们要如何获得这个功能分布的树状图呢?
第一步:获取所有功能及功能所属分组、所属模块、所属领域
--二维表数据 select ROW_NUMBER() over (order by g2.FSEQ,f.FSEQ,c2.FSEQ,c.fname,a.FSEQ)*10 fseq, g.FNAME FNAME1, e.FNAME FNAME2,c.FNAME FNAME3,b.FNAME FNAME4 into #tmp001 from T_META_CONSOLEDETAIL a join T_META_CONSOLEDETAIL_L b on a.FDETAILFUNCID=b.FDETAILFUNCID and FLOCALEID=2052 join T_META_CONSOLESUBFUNC_L c on c.FLOCALEID=2052 and a.FSUBFUNCID=c.FSUBFUNCID join T_META_CONSOLESUBFUNC c2 on c.FSUBFUNCID=c2.FSUBFUNCID join T_META_OBJECTTYPE d on a.FOBJECTID=d.FID join T_META_SUBSYSTEM_L e on d.FSUBSYSID=e.FID and e.FLOCALEID=2052 join T_META_SUBSYSTEM f on e.FID=f.FID join T_META_TOPCLASS_L g on f.FTOPCLASSID=g.FTOPCLASSID join T_META_TOPCLASS g2 on g.FTOPCLASSID=g2.FTOPCLASSID order by g2.FSEQ,f.FSEQ,c2.FSEQ,c.FNAME,a.FSEQ select * from #tmp001 order by fseq
结果如图:

第二步:转换方案
按照树形图的方式,应该是这样子的展示方式:
财务会计
总账
基础资料
促销费用项目
总账工作台
总账数字看板
总账初始化指引工作台
凭证管理
......
即fname1、fname2、fname3、fname4按特定顺序排列。
第一个想法是按照游标进行处理,按顺序遍历每一行,使用八个变量,分别存储最新行的fname和上一行的fname。每一次遍历,从fname1对应的变量开始比较,当前行fname1和上一行fname1不同,则写入fname1和后面的fname2、fname3、fname4,如果当前行fname1和上一行fname1相同,则比较fname2,处理方式类似fname1,直到比较完fnam
数据库操作之——二维表如何按树状展开
场景是这样子的,进入星空,我们看到功能是这样分布的:领域-模块-功能分组-功能,那么我们要如何获得这个功能分布的树状图呢?第一步:获取...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



