楼主: david_liao

請問如何展BOM到底層?

[复制链接]
论坛徽章:
4
ITPUB元老
日期:2005-02-28 12:57:00授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34ERP板块每日发贴之星
日期:2006-12-13 01:02:12
11#
发表于 2006-12-12 11:22 | 只看该作者
如果是用的Oracle ERP,好象有现成的包可以做这个事情

使用道具 举报

回复
论坛徽章:
8
12#
发表于 2006-12-12 11:25 | 只看该作者
最初由 bin2bb 发布
[B]如果是用的Oracle ERP,好象有现成的包可以做这个事情 [/B]



是的

使用道具 举报

回复
论坛徽章:
8
13#
发表于 2006-12-12 11:26 | 只看该作者
最初由 isbb 发布
[B]我也在苏州,看来苏州用oracle的人不少啊,大多数是台资,各位是吗? [/B]
最初由 robincao 发布
[B]呵呵,偶要是苏州的! [/B]


苏州还是满多的了

使用道具 举报

回复
论坛徽章:
9
授权会员
日期:2006-12-22 12:10:31会员2007贡献徽章
日期:2007-09-26 18:42:10奥运会纪念徽章:沙滩排球
日期:2008-06-19 08:25:402010年世界杯参赛球队:澳大利亚
日期:2010-06-13 11:51:29
14#
发表于 2006-12-18 12:41 | 只看该作者
不过偶下个月就要去浙江混了

使用道具 举报

回复
论坛徽章:
0
15#
发表于 2007-1-11 15:38 | 只看该作者

用SQL展BOM

WITH temptab(IXITM,IXLITM, IXKIT,IXKITL,IXQNTY,IXUM,IXSCRP,IXEFFT) AS  
(SELECT root.IXITM, root.IXLITM, root.IXKIT,root.IXKITL,root.IXQNTY,root.IXUM,
root.IXSCRP,root.IXEFFT  FROM proddta.f3002 root  
WHERE  ixkitl in('100875200100') and IXTBM='M'
UNION ALL  SELECT sub.IXITM, sub.IXLITM, sub.IXKIT,sub.IXKITL,sub.IXQNTY,
sub.IXUM,sub.IXSCRP,sub.IXEFFT FROM proddta.f3002 sub, temptab super
WHERE sub.IXKIT = super.IXITM )
SELECT IXITM,IXLITM, IXKIT,IXKITL,IXQNTY,IXUM,IXSCRP FROM temptab WHERE IXEFFT >=107011

使用道具 举报

回复
论坛徽章:
3
16#
发表于 2007-1-15 16:03 | 只看该作者
楼上用的是系统里TABLE吗?还是自己建立的

使用道具 举报

回复
论坛徽章:
1
双黄蛋
日期:2013-02-26 10:40:01
17#
发表于 2013-8-1 19:23 | 只看该作者
SAP-R3展开多阶BOM原码(ORACLE)
create or replace  
PROCEDURE ZS_BOMLIST
( MATNR_IN    IN      VARCHAR2,
   WERKS_IN     IN       VARCHAR2,
   STLAN_IN     in       varchar2,
   STLNR_IN     IN       VARCHAR2,
   STLAL_IN     IN       VARCHAR2,
  ref_cursor   OUT      sys_refcursor   /* 这个sys_refcursor类型在SYS.STANDARD包中 */
)
is
STR  varchar2(500);
i NUMBER;
y number;
begin
STR:='truncate TABLE ZT_BOMLIST_TMP';
execute immediate STR;
I:=1;
insert into ZT_BOMLIST_TMP(MATNR,WERKS,STLAN,STLNR,STLAL,STLTY,STKOZ,BMEIN,BMENG,STLKN,DATUV,ANDAT,ANNAM,AEDAT,AENAM,IDNRK,BISMT,MAKTX,POSTP,POSNR,MEINS,MENGE,AUSCH,POTX1,POTX2,ALPGR,ALPRF,EWAHR,SANKA,JC,MATNR_MJ)
select MATNR,WERKS,STLAN,STLNR,STLAL,STLTY,STKOZ,BMEIN,BMENG,STLKN,DATUV,ANDAT,ANNAM,AEDAT,AENAM,IDNRK,BISMT,MAKTX,POSTP,POSNR,MEINS,MENGE,AUSCH,POTX1,POTX2,ALPGR,ALPRF,EWAHR,SANKA,I as JC,MATNR_IN
from ZV_BOMLIST
where MATNR=MATNR_IN and WERKS=WERKS_IN and STLAN=STLAN_IN;
LOOP
I:=I+1;
insert into ZT_BOMLIST_TMP(MATNR,WERKS,STLAN,STLNR,STLAL,STLTY,STKOZ,BMEIN,BMENG,STLKN,DATUV,ANDAT,ANNAM,AEDAT,AENAM,IDNRK,BISMT,MAKTX,POSTP,POSNR,MEINS,MENGE,AUSCH,POTX1,POTX2,ALPGR,ALPRF,EWAHR,SANKA,JC,MATNR_MJ)
SELECT A.MATNR,A.WERKS,A.STLAN,A.STLNR,A.STLAL,A.STLTY,A.STKOZ,A.BMEIN,A.BMENG,A.STLKN,A.DATUV,A.ANDAT,A.ANNAM,A.AEDAT,
a.AENAM,a.IDNRK,a.BISMT,a.MAKTX,a.POSTP,a.POSNR,a.MEINS,a.MENGE AS MENGE,a.AUSCH,a.POTX1,a.POTX2,a.ALPGR,a.ALPRF,a.EWAHR,a.SANKA,I as JC,a.MATNR
from ZV_BOMLIST a inner join ZT_BOMLIST_TMP b on a.MATNR=b.IDNRK and a.WERKS=b.WERKS and a.STLAN=b.STLAN and JC=(I-1);
-- and STLNR=STLNR_IN and STLAL=STLAL_IN
SELECT count(*) INTO y FROM ZT_BOMLIST_TMP WHERE JC=I;
if Y=0 or I>9 then
  EXIT;
end if;
end LOOP;

  open REF_CURSOR for
    SELECT * FROM ZT_BOMLIST_TMP order by JC,POSNR;

END ZS_BOMLIST;

使用道具 举报

回复
论坛徽章:
0
18#
发表于 2013-8-2 08:53 | 只看该作者
用start with...connect by prior ...语句就可以展开

使用道具 举报

回复
论坛徽章:
523
芝加哥公牛
日期:2009-03-03 14:43:24休斯顿火箭
日期:2009-01-12 14:14:44迈阿密热火
日期:2009-04-02 18:06:15迈阿密热火
日期:2009-03-03 14:43:55迈阿密热火
日期:2009-01-12 14:13:01迈阿密热火
日期:2009-01-12 14:13:01生肖徽章2007版:狗
日期:2008-03-05 13:55:40生肖徽章:狗
日期:2006-10-19 02:25:00生肖徽章:猪
日期:2007-09-13 15:07:19生肖徽章:猪
日期:2007-09-13 15:07:19
19#
发表于 2013-8-2 09:16 | 只看该作者
本帖最后由 elephantcalf 于 2013-8-2 09:19 编辑

不就1句sql可以解决的问题吧?

看过其它人写的递归Precedure展,可能还在用这种模式的人不知道oracle数据库早就已经开始提供了这样的 语句

使用道具 举报

回复
论坛徽章:
523
芝加哥公牛
日期:2009-03-03 14:43:24休斯顿火箭
日期:2009-01-12 14:14:44迈阿密热火
日期:2009-04-02 18:06:15迈阿密热火
日期:2009-03-03 14:43:55迈阿密热火
日期:2009-01-12 14:13:01迈阿密热火
日期:2009-01-12 14:13:01生肖徽章2007版:狗
日期:2008-03-05 13:55:40生肖徽章:狗
日期:2006-10-19 02:25:00生肖徽章:猪
日期:2007-09-13 15:07:19生肖徽章:猪
日期:2007-09-13 15:07:19
20#
发表于 2013-8-2 09:18 | 只看该作者
N年前Oracle就提供了 start with...connect by prior这个语句

使用道具 举报

回复

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

本版积分规则 发表回复

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