2

我有一个包含以下字段的表

  • 监督者
  • 空的

这就像一个推荐计划。一个人可以指代他下面的 3 个人,即 3 指代三个人,即 4 5 8 类似 4 指代 9 10 和 11 同样 8 指代 12,13 是这样的..

我想要一个查询来获取 Supervisor 3 下的所有 EmpId

4

1 回答 1

3

您是否希望我们为您编写解决方案,或者解释一下如何构建递归查询?

它们是如何建立的一个例子是http://publib.boulder.ibm.com/infocenter/db2luw/v8//topic/com.ibm.db2.udb.doc/ad/samples/clp/s-flt -db2.htm

IBM DB2 红皮书有一整章是关于 SQL 递归的。

要点是通常涉及以下步骤:

  • 你定义一个“种子”。从 EMP 中选择 SUPID、EMPID、1 作为 LVL,其中 SUPID = 3;

  • 您为此分配了一个名称。WITH SRC AS <你的种子在这里>

  • 您可以使用指定的名称从种子开始定义进入“下一个级别”的方式。从 SRC、EMP 中选择 SRC.SUPID、F.EMPID、SRC.LVL+1,其中 SRC.EMPID=EMP.SUPID

  • 您将两者结合在一起(在 WITH 子句内) WITH SRC AS <your seed here> UNION ALL <the other SELECT here>

  • (可选)您定义要选择的列。从 SRC 中选择 EMPID、LVL。

于 2010-10-22T09:34:32.480 回答