什么是将多行中的项连接到一个字段的最快方法?

时间:2015-02-11 17:19:31

标签: sap abap

在ABAP中,将同一字段的项目从多行连接到一行字段的最快方法是什么?

我的程序应该报告付款清单,供应商的ID和供应商的电子邮件地址。

电子邮件地址存储在表ADR6中,每个地址一行,以及它们所属的供应商ID。

对于报告,我需要一个内部表,其中填充了供应商ID(唯一键)和连接的email_addresses,以分号分隔。

如何填充此内部表格?

2 个答案:

答案 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)

HANA解决方案

使用string_aggr:

SELECT vendor, STRING_AGG(email_address,';') 
FROM ADR6
GROUP BY vendor;

HANA学院有video demonstrating the use以及sample code。请注意,此解决方案需要HANA SPS09。