【发布时间】:2020-07-08 06:49:14
【问题描述】:
我有一个续集表,如下所示。它是产品和子产品的列表。每个产品可以有多个孩子,每个孩子可以有更多的孩子。我想提取所有产品的这棵树的每一层。下面是输入和输出的示例。谢谢
+------+---------+------+
| Prod | Child P | Qty |
+------+---------+------+
| A | B | 1 |
| A | C | 2 |
| A | D | 1 |
| B | E | 2 |
| C | F | 2 |
| F | J | 4 |
+------+---------+------+
我想编写 T-SQL 代码来获取整个产品树。我期望输出如下:
+------+---------+------+---------+
| Prod | Child P | Qty | Level |
+------+---------+------+---------+
| A | B | 1 | 1 |
| A | C | 2 | 1 |
| A | D | 1 | 1 |
| A | E | 2 | 2 |
| A | F | 2 | 2 |
| A | J | 4 | 3 |
| B | E | 2 | 1 |
| C | F | 2 | 1 |
| C | J | 4 | 2 |
| F | J | 4 | 1 |
+------+---------+------+---------+
有没有办法在 T-SQL 查询而不是存储过程中做到这一点?
【问题讨论】:
-
你搜索过
parent child cte吗?
标签: sql-server loops tsql self-join