zoukankan      html  css  js  c++  java
  • 写了一个上下级关系,根据自己所在部门的编号,找到下级,不包括自己

    did pdid dname cindex
    19 23 业务1 1
    20 24 业务2 1
    21 25 业务3 1
    22 26 业务4 1
    23 28 经理1 1
    24 29 经理2 1
    25 30 经理3 1

    上为表格,下为具体内容,当遇到一个人属于多个部门的时候,取出最高级的部门进行处理

    --select uid from dbo.function_sxj(21)
    --select * from ddept
    ---上下级权限表
    create function function_sxj(@ddid int)
    RETURNS @Table TABLE(uid int)
    as
    begin
    declare @zzjg table(id int identity(1,1),did int,dname varchar(50),jb int)
    declare @temp table(id int identity(1,1),did int)
    declare @i int,@did int
    insert into @temp(did)
    select did from ddept where did=@ddid
    set @i=1
    --if exists(select top 1 1 from ddept a inner join @temp b on a.pdid=b.did)
    --begin
    while(isnull((select top 1 1 from ddept a inner join @temp b on a.pdid=b.did),0)<>0)
    begin
    insert into @zzjg(did,dname,jb)
    select a.did,a.dname,@i from ddept a inner join @temp b on a.pdid=b.did
    if exists(select top 1 1 from ddept a inner join @zzjg b on a.pdid=b.did where jb=@i)
    begin
    delete @temp
    insert into @temp(did)
    select did from @zzjg where jb=@i
    set @i=@i+1
    end
    else
    begin
    delete @temp
    end
    end

    select top 1 @did=b.did from dudd a inner join @zzjg b on a.did=b.did order by jb
    insert @Table
    select b.uid from @zzjg a inner join dudd b on a.did=b.did where jb>=(select jb from @zzjg where did=@did)
    return
    end

    每天一进步、一积累,创造自我价值,体现人生逼格,你是自己的赢家!
  • 相关阅读:
    题解——[[SHOI2010]最小生成树]
    7.12周总结
    还有5个月就NOIP2019了,我干了什么
    【CQOI2018】破解D-H协议
    【SHOI2006】仙人掌
    【HNOI/AHOI2018】道路
    2019.11纪中集训 宋新波老师和曹天佑学长的勉励
    纪中集训2019.11.05
    【2019.10.25 OI-Killer的模拟赛】3.鸡数
    【华东师附国庆模拟赛】Day2 1.矩阵
  • 原文地址:https://www.cnblogs.com/chlf/p/4232816.html
Copyright © 2011-2022 走看看