无法使用选择查询从Z表中获取对象ID

2020-08-26 13:55发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

尝试从Z表中获取一些数据时遇到问题。

根据我的要求,我有一个Z表,其中包含(dummy)data以下字段:

Process_type Class_type objnr_id proc_id

0006 PI 000456003 123.34

0006 PI 000456003 4395.22

0006 PI 000456004 232.44

0006 PI 000423001 1445.2

现在,在实际情况下, objnr_id是服务订单号(AUFNR),即456和423,数字003、004和001是位置(POSNR)与它串联。

我对tcode IW33进行了增强,在其中我有一个按钮,该按钮将拉起AUFNR的所有objnr_id。 因此,我在IW33中的AUFNR为000456。因此,我需要从Z表中提取 3行以上的数据。

我的方法是这样的:

从Ztable中选择*到it_ztable中,其中process_type ='0006'和class_type ='PI'。

在it_ztable循环进入wa。

"从objnr_id中删除最后3位数字。

"修改表。因此,现在我有了objnr_id,而没有连接的位置。(即000456)

endloop

现在我知道上面的选择查询是不正确的,因为我正在从表中获取所有objnr_id ,这将在生产中引起严重的性能问题。 在这种情况下,如何正确使用选择查询,这样我只能选择所需的objnr_id而不获取所有的objnr_id?

我尝试在select中使用%,但仅适用于硬编码值。

此致

Manish

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

尝试从Z表中获取一些数据时遇到问题。

根据我的要求,我有一个Z表,其中包含(dummy)data以下字段:

Process_type Class_type objnr_id proc_id

0006 PI 000456003 123.34

0006 PI 000456003 4395.22

0006 PI 000456004 232.44

0006 PI 000423001 1445.2

现在,在实际情况下, objnr_id是服务订单号(AUFNR),即456和423,数字003、004和001是位置(POSNR)与它串联。

我对tcode IW33进行了增强,在其中我有一个按钮,该按钮将拉起AUFNR的所有objnr_id。 因此,我在IW33中的AUFNR为000456。因此,我需要从Z表中提取 3行以上的数据。

我的方法是这样的:

从Ztable中选择*到it_ztable中,其中process_type ='0006'和class_type ='PI'。

在it_ztable循环进入wa。

"从objnr_id中删除最后3位数字。

"修改表。因此,现在我有了objnr_id,而没有连接的位置。(即000456)

endloop

现在我知道上面的选择查询是不正确的,因为我正在从表中获取所有objnr_id ,这将在生产中引起严重的性能问题。 在这种情况下,如何正确使用选择查询,这样我只能选择所需的objnr_id而不获取所有的objnr_id?

我尝试在select中使用%,但仅适用于硬编码值。

此致

Manish

付费偷看设置
发送
4条回答
Alawn_Xu
1楼 · 2020-08-26 14:26.采纳回答

我猜您想做类似WHERE ... objnr_id LIKE'%'的操作,其中是订单号,LIKE与%组合将选择所有以

 DATA lv_objnr_id TYPE ztable-objnr_id。

 lv_objnr_id = aufnr &&'%'。
 SELECT ...从Ztable WHERE ...和objnr_id像lv_objnr_id。

更多信息: ABAP文档" sql_cond-LIKE"

绿领巾童鞋
2楼-- · 2020-08-26 14:32
Manish Malakar 我从答案中删除了" CONV",以证明解决方案不是关于CONV,而是关于在LIKE之后使用通过串联%初始化的变量。 我还为LIKE的文档添加了超链接。
huskylover
3楼-- · 2020-08-26 14:32

如果您使用的是支持SUBSTRING的NW版本,请执行以下操作:

选择knumv,kdatu
   来自konv
   其中substring(kdatu,1,4)='2016'
   到表@data(test_substring)中。

 
土豆飞人
4楼-- · 2020-08-26 14:35

否玛格丽特,我的系统不支持子字符串。 但是我使用CONV功能获得了分辨率。

一周热门 更多>