设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3875|回复: 8
打印 上一主题 下一主题

[其它] 【SQL SERVER小品】内在联系与外在表现 -- 解答对递归查询的疑问

[复制链接]
1#
发表于 2015-7-24 11:40:06 | 显示全部楼层
谢谢老师提醒,其实,我本意为两张表,一个是BOM的主件表,另一个为主件的子件表,我想更好的体现BOM的分层与计算,看到老师的SQL处理方法,就多想了一些。现在我的解决办法跟老师的差不多,速度很快。我处理的代码如下:
WITH CTE AS (SELECT     0 AS fid, mid, 0 AS Fmid, cast(0 AS decimal(18, 6)) AS 用量, cast('' AS nvarchar(255)) AS 备注, cast('' AS nvarchar(max)) AS TE, ROW_NUMBER()
                                                      OVER (ORDER BY getdate()) AS OrderID, 0 AS Levle, mid AS 产品
FROM         tbl_bom
UNION ALL
SELECT     tbl_bomsub.fid, tbl_bomsub.mid, tbl_bomsub.Fmid, tbl_bomsub.用量, tbl_bomsub.备注, cast(replicate('-', len(CTE.TE)) + '-' AS nvarchar(MAX)) AS TE,
                      CTE.OrderID * 100 + ROW_NUMBER() OVER (ORDER BY GETDATE()) AS OrderID, CTE.Levle + 1 AS Levle, CTE.产品
FROM         tbl_bomsub INNER JOIN
                      CTE ON tbl_bomsub.Fmid = CTE.mid)
    SELECT     *
     FROM         CTE
2#
发表于 2015-7-24 11:43:22 | 显示全部楼层
由于视图不能保存ORDER BY OrderID,就在前台引用了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-7 21:49 , Processed in 0.091569 second(s), 25 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表