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.
我在 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.