递归CTE-查找经理以下的所有员工

2023-12-08

我为此创建了一个示例小提琴SQLFIDDLE

CREATE TABLE [dbo].[Users](
    [userId] [int] ,
    [userName] [varchar](50) ,
    [managerId] [int] ,
   )

INSERT INTO dbo.Users
    ([userId], [userName], [managerId])
VALUES
(1,'Darry',NULL),
(2,'Cono',1),
(3,'Abros',2),
(4,'Natesh',1),
(5,'Ani',3),
(6,'Raju',5),
(7,'Pinky',5),
(8,'Miya',4)

我的要求就像显示该特定经理下面的所有员工层次结构

这是我尝试过的

WITH UserCTE AS (
  SELECT userId, userName, managerId, 0 AS EmpLevel
  FROM Users where managerId IS NULL

  UNION ALL

  SELECT usr.userId, usr.userName, usr.managerId, mgr.[EmpLevel]+1
  FROM Users AS usr
    INNER JOIN UserCTE AS mgr
      ON usr.managerId = mgr.userId where usr.managerId IS NOT NULL
)
SELECT * 
  FROM UserCTE AS u where u.ManagerId=3
  ORDER BY EmpLevel;

Output :

userName
--------
    Ani

我期望的输出是,如果我给出 ManagerId 3,则应显示以下员工

1.Abros
2.Ani
3.Raju
4.Pinky

谁能帮忙解决这个问题


尝试这个。过滤器必须应用在Anchor query of CTE

WITH UserCTE
     AS (SELECT userId,
                userName,
                managerId,
                0 AS EmpLevel
         FROM   [Users]
         WHERE  managerId = 3
         UNION ALL
         SELECT usr.userId,
                usr.userName,
                usr.managerId,
                mgr.[EmpLevel] + 1
         FROM   [Users] AS usr
                INNER JOIN UserCTE AS mgr
                        ON usr.managerId = mgr.userId
         WHERE  usr.managerId IS NOT NULL)
SELECT *
FROM   UserCTE AS u
ORDER  BY EmpLevel; 

小提琴演示

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

递归CTE-查找经理以下的所有员工 的相关文章

随机推荐

  • 如何对重复标签进行分组,以便在 Chart.js 中创建没有重复的标签

    我似乎无法解决这个问题 我的唱片公司给我发回列表 在我的例子中 我希望只有 HOME40 HOME60 和 PRO 作为标签 但不幸的是它返回了它们的串联 我还想改变颜色 如果产品是HOME40那么颜色必须是绿色 如果是PRO那么颜色必须是
  • java中字节数组到短数组然后再返回

    我在获取存储在字节数组中的音频数据 将其转换为大端短数组 对其进行编码 然后将其更改回字节数组时遇到一些问题 这是我所拥有的 原始音频数据存储在audioBytes2中 我使用相同的格式进行解码 并在 cos 函数上加上减号 不幸的是 更改
  • Gmail 5.0 应用在收到 ACTION_SEND 意图时失败,并显示“附件权限被拒绝”

    我的应用程序创建带有附件的邮件 并使用意图Intent ACTION SEND启动邮件应用程序 它适用于我测试过的所有邮件应用程序 但新的 Gmail 5 0 它适用于 Gmail 4 9 除外 邮件在没有附件的情况下打开 显示错误 附件的
  • 在 Angular/JHipster 应用程序上使用另一个模块的组件

    我正在尝试使用component来自另一个module on an 角5生成的应用程序jhipster When a module其中包含component我想使用的是导入的route of the module发生导入的地方被覆盖rout
  • 在 Woocommerce 中下订单后,将附件添加到管理员电子邮件通知

    下新订单后 我尝试向商店管理员发送 PDF 文件 问题与woocommerce email attachments重点是电子邮件会同时发送给客户和管理员 add filter woocommerce email attachments at
  • 符合 MVC 4 站点 508

    我花了很多时间研究这个 但也许有人指出了我正确的方向 需要构建一个符合 508 标准的 MVC 4 网站 三年前我做了一些 508 合规性测试和标签插入 但我真的想再做一次 其他人用什么 寻找什么标签 什么测试工具 有免费的测试工具吗 AJ
  • iOS 登录/注销在 Swift 中的实现

    我一直在尝试快速实现 iOS 应用程序的登录 注销流程 这是我的故事板 在主视图控制器 即蓝屏 中 我实现了以下代码来检测用户是否已登录 然后自动将它们带到表视图控制器 覆盖 func viewDidAppear animated Bool
  • 作为文本框的 AutoCompleteCustomSource 的列表框项目

    我已使用数据源属性将一些项目填充到列表框中 现在我需要从列表框中列出的项目中为文本框设置 AutoCompleteCustomSource 准确地说 ListBox 的 DataSource 和 textBox 的 AutoComplete
  • 将 R 对象分组到列表中

    我已将一系列 SpatialPolygonsDataFrames 加载到我的工作区中 每个命名对象都有一个 adm0 adm1 or adm2 附有国家缩写 对于德国来说 这看起来像 DEU adm0 DEU adm1 and DEU ad
  • 用于检查 perl 模块是否已安装的 perl 脚本

    我希望能够对列表中的每个模块运行此测试 不知道如何 ger perl 循环遍历每个项目 use Module Load eval load Image Magick 1 or die you need Module to run this
  • LDAP Bind 似乎返回 true,密码为空

    我有这段代码根据 LDAP 目录对我的用户进行身份验证 当密码不正确时 它返回 false 但如果密码留空 它仍然会对用户进行身份验证 有什么想法可能会发生这种情况吗 if ldap bind ds user dn password sha
  • C 结构体顺序有任何保证吗?

    我广泛使用了结构 并且看到了一些有趣的东西 特别是 value代替value gt first value其中 value 是指向结构体的指针 first value是第一个成员 是 value safe 另请注意 由于对齐 无法保证大小
  • 使用 WPF 应用程序连接到数据库

    我不久前开始接触 WPF 由于我正处于学习 MVVM 的阶段 所以我正在使用THIS教程 继该教程之后 我现在有了一个涉及产品的基本项目 我想做的下一件事是了解如何连接到数据库并从中存储 检索信息 我的问题是 连接数据库的可用方法有哪些 最
  • 有没有办法检测用户何时更改了设备上的时钟时间?

    有没有办法检测Android系统时钟何时被重置由用户在安卓中 我正在设计一个应用程序 它使用系统时间来确定用户何时在特定时间位于特定地点 并且我不想依赖当时的网络可用性 显然 因此最好知道用户何时更改了系统时钟 这样他们就无法 作弊 就在这
  • 或 RequestDispatcher.forward 使用 GET 或 POST 吗?

    问题如标题所示
  • onServicesDiscovered(BluetoothGatt gatt, int status) 永远不会被调用

    我有一个从 IntentService 调用的 BluetoothLeService BLEService 在连接之前工作正常 与 iBeacon 建立连接后 它调用 public void onConnectionStateChange
  • Android 中的底线样式

    我需要创建一个 android 形状 以便只有底部有描边 虚线 当我尝试以下操作时 笔划将形状从中心一分为二 有谁知道如何做对吗 笔划必须是底线 边框 我使用该形状作为 TextView 的背景 请不要介意我为什么需要它
  • 编辑曲线和轴参数选项未显示在 matplotlib 中

    我正在使用 Python 2 6 和 PyQt4 matplotlib 后端设置为 Qt4Agg 绘图显示了 但编辑曲线参数的选项 看起来像绿色勾选框的选项 没有显示 有任何想法吗 编辑 这是我没有看到的复选框 示例代码 import ma
  • 如何从我的 EAGLLayer 抓取图像?

    我正在寻找方法来获取 opengl 的内容 如 UIImage 然后将其保存到文件中 我现在正在尝试 glReadPixels 尽管我不确定我应该做哪种 malloc 是否正确 我发现在 OSX 上它是 GL BGRA 但在 iPhone
  • 递归CTE-查找经理以下的所有员工

    我为此创建了一个示例小提琴SQLFIDDLE CREATE TABLE dbo Users userId int userName varchar 50 managerId int INSERT INTO dbo Users userId