|
本帖最后由 13601812106_01 于 2015-7-20 15:20 编辑
学习了两天,发现SQL递归很灵活:想请教一下老师:可否再加一个层次,查出来的结果按顺序的排列,如:
层次 | 父 | 子 | level | -1 | 10 | 101 | | --1 | 101 | 1001 | | ---1 | 1001 | 10001 | | -2 | 10 | 102 | | --1 | 102 | 1002 | | --2 | 102 | 10056 | |
以下为老师提供的代码,就是不知道怎么修改才好
WITH 单据递归查询 (bomID,产品id,子件ID,单耗,损耗率,根产品,level) AS
(
SELECT bomID,产品id,子件ID,单耗,损耗率,产品id as 根产品,0 as level
FROM bom表
where 产品ID not in (SELECT distinct 子件id FROM bom表)
UNION ALL
SELECT a.bomID,a.产品id,a.子件ID,a.单耗,a.损耗率,b.根产品,b.level+1 as level
FROM bom表 AS a,单据递归查询 AS b
WHERE a.产品ID=b.子件ID)
SELECT * FROM 单据递归查询
麻烦老师了
【SQL SERVER小品】跟踪追击 -- SQL SERVER递归查询示例
http://www.office-cn.net/forum.p ... 9830&fromuid=145480
(出处: Office中国论坛/Access中国论坛)
|
|