在ABAP中选择带偏移量的语句(Select statement with offset in ABAP)

编程入门 行业动态 更新时间:2024-10-27 08:38:15
在ABAP中选择带偏移量的语句(Select statement with offset in ABAP)

我正在尝试在ABAP中使用此SELECT语句:

SELECT DISTINCT * FROM dbtab INTO CORRESPONDING FIELDS OF TABLE itab WHERE field1+7(16) IN s_field1 AND field2 IN s_field2.

但我不能使用offset作为dbtab列。 我怎么解决这个问题?

我试图避免像循环一样

SELECT DISTINCT * FROM dbtab WHERE field2 IN s_field2. IF field1+7(16) IN s_field1 ... endif. endselect.

I'm trying to use this SELECT statement in ABAP:

SELECT DISTINCT * FROM dbtab INTO CORRESPONDING FIELDS OF TABLE itab WHERE field1+7(16) IN s_field1 AND field2 IN s_field2.

but I can't use offset for a dbtab column. How can I solve this problem?

I'm trying to avoid loop like

SELECT DISTINCT * FROM dbtab WHERE field2 IN s_field2. IF field1+7(16) IN s_field1 ... endif. endselect.

最满意答案

您不能在OPEN SQL中使用偏移量。

我建议将SELECT转换为内部表并像这样循环它。

SELECT DISTINCT * FROM dbtab INTO CORRESPONDING FIELDS OF TABLE itab WHERE field2 IN s_field2. LOOP AT dbtab into wa_itab. IF wa_itab-field1+7(16) IN s_field1 ... ENDIF. ENDLOOP.

另一方面,我还将内部表定义为SORTED或HASHED,或者如果您更喜欢尝试按正在进行比较的字段排序itab。 场符号也可以是替代品。

希望能帮助到你。

You can't use offset in OPEN SQL.

I would recommend to make a SELECT into an internal table and loop over it like this.

SELECT DISTINCT * FROM dbtab INTO CORRESPONDING FIELDS OF TABLE itab WHERE field2 IN s_field2. LOOP AT dbtab into wa_itab. IF wa_itab-field1+7(16) IN s_field1 ... ENDIF. ENDLOOP.

On the other hand I would also define the internal table as SORTED or HASHED or if you prefer try to SORT itab by the field you are making the comparison. Field symbols could be an alternative also.

Hope it helps.

更多推荐

本文发布于:2023-07-22 02:13:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1216003.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:语句   偏移量   ABAP   offset   statement

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!