在ABAP中,将同一字段的项从多行连接到一行字段的最快方法是什么?
我的程序应该报告付款列表、供应商的ID和供应商的电子邮件地址。
电子邮件地址存储在表ADR6中,每个地址一行,以及它们所属的供应商ID。
对于该报告,我需要一个内部表,其中填充了供应商ID(唯一密钥)和用分号分隔的串联电子邮件地址。
如何填充此内部表?
没有真正神奇的方法来连接表中的一些字段。只需使用以下内容:
data: email_addresses type string.
loop at [table with addresses] assigning field symbol(<address>).
at first.
email_addresses = <address>-[email field].
continue.
endat.
concatenate email_addresses ';' <address>-[email field] into email_addresses.
endloop.
我能想到的唯一更快的方法是使用本机SQL。
HANA解决方案
使用字符串集:
SELECT vendor, STRING_AGG(email_address,';')
FROM ADR6
GROUP BY vendor;
HANA Academy有一个演示使用的视频,以及示例代码。请注意,此解决方案需要HANA SPS09。