楼主: waynemaggie

[原创] 按BOM层次展开

[复制链接]
论坛徽章:
0
11#
发表于 2008-11-26 08:06 | 只看该作者
是我搞错了,是可以运行。
我连到服务器上去了,我们服务器上是2000的。

使用道具 举报

回复
论坛徽章:
0
12#
发表于 2009-3-5 10:27 | 只看该作者
研究研究,拿走了,谢谢

使用道具 举报

回复
论坛徽章:
0
13#
发表于 2009-3-13 15:57 | 只看该作者
泪奔收藏

使用道具 举报

回复
论坛徽章:
0
14#
发表于 2009-3-31 23:40 | 只看该作者

回复 #1 waynemaggie 的帖子

可以输入自定义条件吗?
如输入父料号,只展开这个料号的BOM?

使用道具 举报

回复
论坛徽章:
5
ITPUB8周年纪念徽章
日期:2009-09-27 10:21:222010新春纪念徽章
日期:2010-01-04 08:33:082010新春纪念徽章
日期:2010-03-01 11:05:01ITPUB9周年纪念徽章
日期:2010-10-08 09:32:252011新春纪念徽章
日期:2011-02-18 11:43:33
15#
发表于 2009-4-1 10:52 | 只看该作者
DECLARE @ItemCode NVARCHAR(40)
SET @ItemCode = '2001029002' -- = T0.ItemCode  FROM OITM T0 WHERE T0.ItemCode = '[%0]'


WITH Bom(Father, code, BomLevel,sort,warehouse,Qty,issue) AS
(


      SELECT CONVERT(NVARCHAR(40),N'')  Father ,T0.Code Code, 0 AS bomlevel, CONVERT(VARCHAR(255), @ItemCode) Sort ,ToWH WareHouse,Qauntity Quantity ,CONVERT(CHAR(1),'') Issuemthd
      FROM OITT T0
         WHERE Code = @itemCode
     
     UNION ALL
         
     SELECT CONVERT(NVARCHAR(40), T0.Father ) Father,  T0.Code , T1.Bomlevel + 1,CONVERT(VARCHAR(255),RTRIM(Sort)+T0.code),T0.Warehouse,T0.Quantity,T0.Issuemthd
         FROM ITT1 T0
                    INNER JOIN BOM T1
                        ON T0.Father = T1.Code
)


SELECT CASE WHEN T0.BomLevel=0 THEN  T0.Code ELSE NULL END  产成品,
       CASE WHEN T0.BomLevel=0 THEN  T1.ItemCode ELSE NULL END  成品名称,
       T0.BomLevel 深度,
       LEFT( '.                                             ',T0.BomLevel*4)+ ( CASE WHEN T0.BomLevel >0 THEN T0.Code ELSE N'' END) 物料编号,
       CASE WHEN T0.BomLevel >0 THEN T1.ItemName ELSE NULL END 物料描述,
       T0.Qty 用量,
       CASE T0.Issue WHEN 'M' THEN N'手动' WHEN 'B' THEN N'倒冲' END 发货方法
   FROM BOM T0
        JOIN OITM T1 WITH(NOLOCK) ON T0.Code = T1.Itemcode

使用道具 举报

回复
论坛徽章:
0
16#
发表于 2009-4-1 15:13 | 只看该作者
谢谢eric_e ,测试后,做了小小的修改(下面蓝色加粗字体),能在我公司应用了。

declare @ItemCode nvarchar(20)
select @ItemCode=t0.code from oitt t0 where t0.code='[%0]';

WITH Bom(Father, code, BomLevel,sort,warehouse,Qty,issue) AS
(
      SELECT CONVERT(NVARCHAR(40),N'')  Father ,T0.Code Code, 0 AS bomlevel, CONVERT(VARCHAR(255), @ItemCode) Sort ,ToWH WareHouse,Qauntity Quantity ,CONVERT(CHAR(1),'') Issuemthd
      FROM OITT T0
         WHERE Code = @itemCode
     UNION ALL
     SELECT CONVERT(NVARCHAR(40), T0.Father ) Father,  T0.Code , T1.Bomlevel + 1,CONVERT(VARCHAR(255),RTRIM(Sort)+T0.code),T0.Warehouse,T0.Quantity,T0.Issuemthd
         FROM ITT1 T0
                    INNER JOIN BOM T1
                        ON T0.Father = T1.Code
)


SELECT CASE WHEN T0.BomLevel=0 THEN  T0.Code ELSE NULL END  产成品,
       CASE WHEN T0.BomLevel=0 THEN  T1.ItemName ELSE NULL END  成品名称,
       T0.BomLevel 深度,
       LEFT( '.                                             ',T0.BomLevel*4)+ ( CASE WHEN T0.BomLevel >0 THEN T0.Code ELSE N'' END) 物料编号,
       CASE WHEN T0.BomLevel >0 THEN T1.ItemName ELSE NULL END 物料描述,
       T0.Qty 用量,
       CASE T0.Issue WHEN 'M' THEN N'手动' WHEN 'B' THEN N'倒冲' END 发货方法
   FROM BOM T0
        JOIN OITM T1 WITH(NOLOCK) ON T0.Code = T1.Itemcode order by sort

[ 本帖最后由 acpower 于 2009-4-1 15:14 编辑 ]

使用道具 举报

回复
论坛徽章:
5
ITPUB8周年纪念徽章
日期:2009-09-27 10:21:222010新春纪念徽章
日期:2010-01-04 08:33:082010新春纪念徽章
日期:2010-03-01 11:05:01ITPUB9周年纪念徽章
日期:2010-10-08 09:32:252011新春纪念徽章
日期:2011-02-18 11:43:33
17#
发表于 2009-4-1 20:47 | 只看该作者
我是把陈华的代码改了一下,
大家还是应该互相学习,如果大家都能熟悉掌握SQL,我想会对B1这个事业有点小小的影响.

使用道具 举报

回复
论坛徽章:
2
2010广州亚运会纪念徽章:手球
日期:2010-12-06 10:58:29优秀写手
日期:2013-12-18 09:29:15
18#
发表于 2009-4-5 21:53 | 只看该作者
非常感谢,不过代码有点问题吧,需要稍微改下,实际用量取错了,你深度2的用量还要X深度1的实际用量的的,要不然这个BOM取出来的深度2的结果绝对有误
请看下生产报表中的物料单报表

使用道具 举报

回复
论坛徽章:
14
生肖徽章2007版:鼠
日期:2008-01-02 17:35:532013年新春福章
日期:2013-02-25 14:51:242011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB9周年纪念徽章
日期:2010-10-08 09:34:032010新春纪念徽章
日期:2010-03-01 11:06:322010新春纪念徽章
日期:2010-01-04 08:33:082009日食纪念
日期:2009-07-22 09:30:002009新春纪念徽章
日期:2009-01-04 14:52:28奥运会纪念徽章:篮球
日期:2008-09-03 22:48:32奥运会纪念徽章:篮球
日期:2008-07-10 13:43:01
19#
发表于 2009-4-6 00:20 | 只看该作者
牛叉啊

使用道具 举报

回复
论坛徽章:
0
20#
发表于 2009-4-13 15:32 | 只看该作者
楼主很强啊,顶了,下来试试!

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表