部门档案分级问题

若部门档案中,都是以id,father_id的形式存储,若部门A分为科室A1,小科室AA1,三级,但是部门B分为科室B1,我想显示一级部门A、B,二级部门A1、B1,如何实现

image.png

FineReport Trrrzun 发布于 2023-10-18 13:34 (编辑于 2023-10-18 13:57)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
用户k6280494Lv6资深互助
发布于2023-10-18 13:39(编辑于 2023-10-18 13:40)
  • Trrrzun Trrrzun(提问者) 不是一个性质,比如有财务部,财务部底下有会计科,但是还有一个销售公司,销售公司也作为我们公司的一个部门,但是销售公司下还有销售部,销售公司作为一级部门,跟财务部一个等级,会计科跟销售公司的销售部一个等级
    2023-10-18 13:44 
最佳回答
0
快乐星光Lv5中级互助
发布于2023-10-18 13:47

如果你的档案表结构没有级别字段,那就只能先把结构树表数据查询出来,一般来说一级节点的father_id为空。这个过程一般用存储来实现。查询逻辑:一级表="select id from 档案表 where father_id is null or father_id='' " ;二级表=select id from 档案表 where father_id in ( 一级表)  ,一次类推

  • Trrrzun Trrrzun(提问者) 完善问题了,老师
    2023-10-18 13:58 
  • 快乐星光 快乐星光 回复 Trrrzun(提问者) 查询语句就用楼下的,但你这个问题不在语句,在与你的一级节点(一级部门)是你自己定义的,所以你需要自己想办法把一级部门的id找出来。在下面的sql语句的where条件改为 and a.id in(\"id1\",\"id2\",......) id1、id2是你自定义的一级部门id
    2023-10-18 14:12 
最佳回答
0
CD20160914Lv8专家互助
发布于2023-10-18 13:50(编辑于 2023-10-18 14:15)

把你现在的数据,截图出来。然后自己用excel模拟一下你到底要什么效果?

用父级主键关联主键,然后父级主键为null的就行

select a.* from 部门表 a

join 部门表 b on a.父级主键=b.主键

where 1=1

and a.父级主键 is null

image.png

select 

b.company_name as 一级部门,

a.company_name as 二级部门

from aaatbbb a

join (select * from aaatbbb where my_value is  null ) b on a.my_value=b.month_code_s

image.png

image.png

  • Trrrzun Trrrzun(提问者) 完善问题了,老师
    2023-10-18 13:58 
  • CD20160914 CD20160914 回复 Trrrzun(提问者) 参考上面的语句写法。你测试看
    2023-10-18 14:01 
最佳回答
0
ID1208Lv6高级互助
发布于2023-10-18 13:57

如果是非常规的分级,可以自定义一个分级关系,然后用折叠树或者想要的形式展现

  • 5关注人数
  • 215浏览人数
  • 最后回答于:2023-10-18 14:15
    请选择关闭问题的原因
    确定 取消
    返回顶部