分享

Function_Sys_User_GetUnderlings(取该用户下级人员)

 自信开朗 2016-03-11

Create Function Function_Sys_User_GetUnderlings(@RecordID char(36) = null, @IncludeCurrent Bit = 0)
Returns @Tab Table(RecordID char(36), UserName nvarchar(30), RealName nvarchar(30), OrganizationID char(36), Level Int)
As
Begin
  Declare @Level Int
  Set @Level = 0
  If @IncludeCurrent = 1
  Begin
    Insert @Tab([RecordID],[UserName],[RealName],[OrganizationID],[Level])
    Select [RecordID],[UserName],[RealName],[OrganizationID],0 From [Sys_User] Where [RecordID] = @RecordID
  End
  While @Level = 0 Or @@RowCount > 0
  Begin
    Set @Level = @Level + 1
    Insert @Tab([RecordID],[UserName],[RealName],[OrganizationID],[Level])
    Select [RecordID],[UserName],[RealName],[OrganizationID],@Level From [Sys_User] Where (@Level = 1 and (([Mgr] = @RecordID) Or (@RecordID Is Null and [Mgr] Is Null))) Or ([Mgr] In (Select [RecordID] From @Tab Where [Level] = @Level - 1))
  End
  Return
End

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多