在ABAP中,将同一字段的项目从多行连接到一行字段的最快方法是什么?
我的程序应该报告付款清单,供应商的ID和供应商的电子邮件地址。
电子邮件地址存储在表ADR6中,每个地址一行,以及它们所属的供应商ID。
对于报告,我需要一个内部表,其中填充了供应商ID(唯一键)和连接的email_addresses,以分号分隔。
如何填充此内部表格?
答案 0 :(得分:3)
没有真正神奇的方法来连接表中的某些字段。只需使用:
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。
答案 1 :(得分:2)
使用string_aggr:
SELECT vendor, STRING_AGG(email_address,';')
FROM ADR6
GROUP BY vendor;
HANA学院有video demonstrating the use以及sample code。请注意,此解决方案需要HANA SPS09。