递归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-查找经理以下的所有员工 的相关文章

  • NUnit 与 xUnit

    两者有什么区别NUnit http www nunit org and xUnit net https xunit net 开发其中两个而不是仅一个有什么意义 我读到 xUnit 是由 NUnit 的发明者开发的 xUnit net 是 N
  • Visual Studio 2013 中的内存分析

    我想探索如何在我的应用程序中分配内存 我有 C 控制台应用程序并使用 Visual Studio 2013 Professional I go to Analyze gt 性能和诊断并选择 NET内存分配 结果我得到以下总结 图表中每次CP
  • 需要按天分割日期时间范围

    我有一个需要根据日期时间拆分的表 输入表 ID Start End A 2019 03 04 23 18 04 2019 03 04 23 21 25 A 2019 03 04 23 45 05 2019 03 05 00 15 14 所需
  • 数据库未在客户端系统上运行的 C# Windows 窗体应用程序

    我用 C 开发了一个使用 SQL Server 数据库连接的 Windows 窗体应用程序 我在 NET Framework 4 0 和 SQL Server 2008 R2 中开发它 我的应用程序正在使用应用程序根目录中存在的本地数据库
  • PostgreSQL 中“-”处或附近的语法错误

    我正在尝试运行查询来更新用户密码 alter user dell sys with password Pass 133 但因为 它给了我这样的错误 ERROR syntax error at or near LINE 1 alter use
  • SQL Join 列上类似于另一列[重复]

    这个问题在这里已经有答案了 可能的重复 mysql连接查询使用like https stackoverflow com questions 1930809 mysql join query using like 我想要进行连接 其中一列包含
  • Postgresql 一张表的多个计数

    我想从表中的两列中获得这些列中值的统一计数 例如 两列是 表 报告 type place one home two school three work four cafe five friends six mall one work one
  • 计算从给定日期开始的月份中的第几天?

    我正在努力寻找一种简单有效的解决方案来计算每月的工作日 例如 如果给定日期是第一个星期一Monday 5th March 2018然后我想获取接下来 6 个月每个月第一个星期一的日期 例如 Monday 2nd April 2018 and
  • SQL Server 2008R2 和创建 XML 文档

    论坛上的第一篇文章 因为我真的被这个问题困住了 以下查询正确地将有效的 XML 文档分配给 xTempXML 变量 类型为 xml 注 文档的长度 转换为varchar max 711 select xTempXML select Pres
  • 如何使用 vb.net 将数据插入 Access 表?

    我想在 Access 数据库中插入一个新行 我正在考虑做类似的事情 oConnection new Connection connectionstring oTable oCennection table Orders oRow oTabl
  • 加密数据库字段的好方法?

    我被要求加密数据库中的各种数据库字段 问题是这些字段在读取后需要解密 我在用着Django and SQL Server 2005 有什么好主意吗 See 在 SQL Server 2005 数据库中使用对称加密 https web arc
  • 数组与列表的性能

    假设您需要一个需要频繁迭代的整数列表 数组 我的意思是非常频繁 原因可能有所不同 但可以说它位于大容量处理的最内层循环的核心 一般来说 人们会选择使用列表 List 因为它们的大小具有灵活性 最重要的是 msdn 文档声称列表在内部使用数组
  • VS2017在nuget包中将“Build Action”设置为“Content”

    我创建我的nuget包在gitlab使用以下命令行 nuget pack Prop Configuration Release OutputDirectory nuget REPONAME APPNAME APPNAME csproj 如果
  • 生成Excel文件错误

    我在经典 ASP 中使用以下代码生成 Excel 文件 代码很简单并且有效 我在 Windows Vista x86 上的 IIS 7 0 下运行代码 两个问题 有一个奇怪的警告框 这是屏幕快照 http i27 tinypic com 2
  • Sequelize.js 中的自定义或覆盖连接

    我需要使用创建自定义连接条件Sequelize js http sequelizejs com使用 MSSQL 具体来说 我需要加入TableB基于一个COALESCE中的列的值TableA and TableB并最终得到这样的连接条件 L
  • 如果浏览器在 asp .net 中关闭,请从浏览器中注销?

    我的要求有点复杂 用户正在使用 Web 浏览器访问数据库 而在访问数据库时 如果用户关闭活动页面而不是注销会话 该会话需要自动注销 有人可以指导我如何做这个吗 我在母版页中使用了jquery onbeforeunload 我收到消息离开页面
  • 实现软删除的最佳方法是什么?

    目前在做一个项目 我们要对大部分用户 用户角色 实现软删除 我们决定添加一个is deleted 0 数据库中每个表的字段并将其设置为 1 如果特定用户角色点击特定记录上的删除按钮 现在为了将来的维护 每个SELECT查询需要确保它们不包含
  • 快速查询最新记录的方法?

    我有一张这样的表 USER PLAN START DATE END DATE 1 A 20110101 NULL 1 B 20100101 20101231 2 A 20100101 20100505 在某种程度上 如果END DATE i
  • 数据库字段中的逗号分隔值

    我有一个产品表 该表中的每一行对应一个产品 并由唯一的 ID 标识 现在 每个产品都可以有多个与该产品关联的 代码 例如 Id Code 0001 IN ON ME OH 0002 ON VI AC ZO 0003 QA PS OO ME
  • H2 用户定义的聚合函数 ListAgg 不能在第一个参数上使用 DISTINCT 或 TRIM()

    所以我有一个 DB2 生产数据库 我需要在其中使用可用的函数 ListAgg 我希望使用 H2 的单元测试能够正确测试此功能 不幸的是H2不直接支持ListAgg 但是 我可以创建一个用户定义的聚合函数 import java sql Co

随机推荐

  • 如何对重复标签进行分组,以便在 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