ABAP 将值增加到 select 查询中

ABAP Increment value into a select Query

我在 ABAP 中有一个结构:

id werks name1

我的查询是:

    SELECT    werks name1
    INTO      TABLE lt_store
    FROM      t001w
    WHERE     vlfkz   EQ 'A'.

可以添加包含可递增值的字段 ID,例如:

  id    werks    name1
-----------------------
 1      R0001    test
 2      ERT3     test2 .....

然后像那样做一些SELECT

SELECT (value) werks name FROM...

我的解决方案是在 lt_store 上循环并手动添加值,但我认为如果我们直接在查询中这样做是优化的。

您可以在循环处理结果时使用 sy-tabix 字段。 例如,

LOOP AT lt_store INTO ls_store.
  WRITE: /(1) sy-tabix, (5) ls_store-werks, (15)ls_store-name1.
ENDLOOP.

OpenSQL无法满足您的要求。根据您使用的数据库 运行,您可能可以在 Native SQL 中将一些东西放在一起,但对于这个要求,我不建议这样做,因为有一个简单的 LOOP 解决方案。

Open SQL不支持聚合函数,但可以用字段符号优化一下:

LOOP AT lt_store assignin <fs_store>.
  <fs_store>-id = sy-tabix.
ENDLOOP.