2020-09-01 04:56发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们。
可能会知道如何从PRODUCTION-> REPORTS-> BOM表中运行"物料清单报告"查询?
对我来说,有趣的是,有可能运行一次查询以具有多个项目的多级bom结构。
先谢谢
您好,
尝试此查询最多六个级别的组件。
SELECT
T0。[父亲]为" Assembly",T0。[ 代码]设为'Component1',t10。[ItemName]'Description1',T1。[Code]设为'Component2',t11。[ItemName]'Description2',T2。[Code]设为'Component3',t12。[ItemName] 'Description3',T3。[代码]为'Component4',t13。[ItemName]'Description4',T4。[Code],作为'Component5',t14。[ItemName]'Description5',T5。[Code]作为'Component6。 ',t15。[ItemName]'Description6'
FROM
ITT1 T0左外连接ITT1 T1在T0.Code = T1。父亲左外连接ITT1 T2在T1.Code = T2.T2上的父亲左外连接ITT1 T3。代码= T3.T3上的父亲左外连接ITT1 T4。代码= T4.T4上的父亲左外连接ITT1 T5。代码= T5.T5上的父亲左外连接ITT1 T6。 代码= T6.t0上的父亲左外连接oitm t20。父亲= t20.itemcode上t0上的左外部连接oitm t10.code = t10.itemcode t1上的左外部连接oitm t11.code = t11.itemcode左外连接oitm t12 on t2.code = t12.itemcode t3.code上的左外部连接oitm t13 = t13.itemcode在t4.code上的左外部连接oitt 14 = t14.itemcode在t5.code = t15.itemcode的左外部连接oitm t15
感谢与问候,
Nagarajan
嗨,
我没有从上述查询中获得确切的要求。 请举例说明。 我将检查并明天回复。
尊敬的Gianluca Calloni,
您可以使用光标。 请检查此查询
声明@codice nvarchar(50);
DECLARE BOM_cursor CURSOR静态FOR
从其他代码输入中选择代码(" ITEMCODE"," ITEMCODE1"," ITEMCODE2")
打开BOM_cursor
如果@@ CURSOR_ROWS> 0
开始
从BOM_cursor到@codice的下一步
@@ FETCH_STATUS = 0
; BOM(数据库,父级,子级,级别)为
(选择@codice,T0。父亲父级,T0.Code子级,从ITT1 T0获得0级别,其中T0.Father = @codice
全部从Itt1 T1选择@codice,T1.Father,T1.Code,Level + 1从T1的内部加入BOM T2.Father = T2.Child)
插入到#TmpBOM中,选择T4。*从BOM T4选项(MAXRECURSION 90)
从BOM_cursor INTO @codice下一步查找
END
关闭BOM_cursor
取消分配BOM_cursor
选择*来自#TmpBOM
DROP TABLE #TmpBOM
嗨Dillibabu ..
很高兴为您提供帮助...
????????
祝你愉快
LUCA
嗨,大家好。抱歉我的回答延迟了...
好吧。我能够成功编写一个有效的"查询",例如:
声明@SCOREX TABLE(linenum int IDENTITY(1,1),articolo nvarchar(50)) 声明@BM TABLE(DB nvarchar(50),Parent nvarchar(50),Child nvarchar(50),Level nvarchar(50)) 声明@codice nvarchar(50); 声明@tot int; 十进制@single int; 插入@SCOREX 从OITM中选择ItemCode 其中的项目名称,例如'%scorex%' 和(项目名称不像'%fondal%',项目名称不像'%ALFLUX%',项目名称不像'%EUROLE%',项目名称不像'%BRASC%') 和ItemCode不像'R-%'和ItmsGrpCod ='105'由ItemCode排序; 设置@tot =(从@SCOREX中选择COUNT(*)); 设置@single = 1;
WHILE(@single <= @tot) 开始使用BOM(DB,Parent,Child,Level)为( 选择(从@SCOREX中选择articolo,其中linenum = @single),T0。父亲父级,T0。代码子级,0级 从ITT1 T0,其中T0.Father =(从@SCOREX中选择articolo,其中linenum = @single) 联合所有 选择(从@SCOREX中选择articolo,其中linenum = @single),T1。父亲,T1.Code,等级+1 从Itt1 T1内部加入T1上的BOM T2。父亲= T2.Child)
插入@BM 选择T4。*从BOM T4选项(MAXRECURSION 90) 设置@single = @single + 1 结束 选择A.DB,a.Parent,c.itmsgrpcod,a.child,B.itmsgrpcod,a.level 来自@BM A在a.child = b.itemcode上的内部联接OITM B在a.Parent = c.ItemCode上的内部联接OITM C 按a.DB,a.Level排序
然后,运行类似查询
从@BM中选择不同的A.Child,b.itemname。A.Child = b.ItemCode上的内部连接OITM B,其中b.ItmsGrpCod ='112'由A.child排序
我可以从物料清单中检索属于ItemGroup'112'的所有子物料代码...对于我来说,Wich是原材料...
换句话说,..对于物料组'105'的每个BOM表=>仅检索属于物料组'112'的子代码(在BOM表的每个级别中)。
现在..显然..不能在视图中使用..导致SQL SERVER在视图代码中不要"希望"参数。
有什么建议吗?
我在考虑一个功能...或一个SP ...但是我不确定这可能是正确的方法....
预先感谢
只需在表值函数中的查询之上运行,并得到一些错误消息。 到目前为止,我从未在此功能下运行查询。
没有人可以帮助我??
最多设置5个标签!
您好,
尝试此查询最多六个级别的组件。
SELECT
T0。[父亲]为" Assembly",T0。[ 代码]设为'Component1',t10。[ItemName]'Description1',T1。[Code]设为'Component2',t11。[ItemName]'Description2',T2。[Code]设为'Component3',t12。[ItemName] 'Description3',T3。[代码]为'Component4',t13。[ItemName]'Description4',T4。[Code],作为'Component5',t14。[ItemName]'Description5',T5。[Code]作为'Component6。 ',t15。[ItemName]'Description6'
FROM
ITT1 T0左外连接ITT1 T1在T0.Code = T1。父亲左外连接ITT1 T2在T1.Code = T2.T2上的父亲左外连接ITT1 T3。代码= T3.T3上的父亲左外连接ITT1 T4。代码= T4.T4上的父亲左外连接ITT1 T5。代码= T5.T5上的父亲左外连接ITT1 T6。 代码= T6.t0上的父亲左外连接oitm t20。父亲= t20.itemcode上t0上的左外部连接oitm t10.code = t10.itemcode t1上的左外部连接oitm t11.code = t11.itemcode左外连接oitm t12 on t2.code = t12.itemcode t3.code上的左外部连接oitm t13 = t13.itemcode在t4.code上的左外部连接oitt 14 = t14.itemcode在t5.code = t15.itemcode的左外部连接oitm t15
感谢与问候,
Nagarajan
嗨,
我没有从上述查询中获得确切的要求。 请举例说明。 我将检查并明天回复。
感谢与问候,
Nagarajan
尊敬的Gianluca Calloni,
您可以使用光标。 请检查此查询
声明@codice nvarchar(50);
DECLARE BOM_cursor CURSOR静态FOR
从其他代码输入中选择代码(" ITEMCODE"," ITEMCODE1"," ITEMCODE2")
打开BOM_cursor
如果@@ CURSOR_ROWS> 0
开始
从BOM_cursor到@codice的下一步
@@ FETCH_STATUS = 0
开始
; BOM(数据库,父级,子级,级别)为
(选择@codice,T0。父亲父级,T0.Code子级,从ITT1 T0获得0级别,其中T0.Father = @codice
全部从Itt1 T1选择@codice,T1.Father,T1.Code,Level + 1从T1的内部加入BOM T2.Father = T2.Child)
插入到#TmpBOM中,选择T4。*从BOM T4选项(MAXRECURSION 90)
从BOM_cursor INTO @codice下一步查找
END
END
关闭BOM_cursor
取消分配BOM_cursor
选择*来自#TmpBOM
DROP TABLE #TmpBOM
嗨Dillibabu ..
很高兴为您提供帮助...
????????
祝你愉快
LUCA
嗨,大家好。抱歉我的回答延迟了...
好吧。我能够成功编写一个有效的"查询",例如:
然后,运行类似查询
从@BM中选择不同的A.Child,b.itemname。A.Child = b.ItemCode上的内部连接OITM B,其中b.ItmsGrpCod ='112'由A.child排序
我可以从物料清单中检索属于ItemGroup'112'的所有子物料代码...对于我来说,Wich是原材料...
换句话说,..对于物料组'105'的每个BOM表=>仅检索属于物料组'112'的子代码(在BOM表的每个级别中)。
现在..显然..不能在视图中使用..导致SQL SERVER在视图代码中不要"希望"参数。
有什么建议吗?
我在考虑一个功能...或一个SP ...但是我不确定这可能是正确的方法....
预先感谢
嗨,
只需在表值函数中的查询之上运行,并得到一些错误消息。 到目前为止,我从未在此功能下运行查询。
感谢与问候,
Nagarajan
没有人可以帮助我??
????????
一周热门 更多>