首页 > 解决方案 > 用于选择单个表行的 4 列的 GET_ENTITY 查询

问题描述

我正在SELECT为 oData 服务(下面的代码)编写查询,EMPLOYEESET_GET_ENTITY但我收到警告说:

The database field or the result type of the aggregate function NACHN and the component "PERNR" of "ER_ENTITY" are not compatible.

选择查询:

method EMPLOYEESET_GET_ENTITY.

    DATA: ls_keytab TYPE LINE OF /IWBEP/T_MGW_NAME_VALUE_PAIR,
          enteredPernr TYPE string.

    LOOP AT it_key_tab INTO ls_keytab.
      enteredPernr = ls_keytab-value.
    ENDLOOP.

    SELECT SINGLE pernr nachn vorna gbdat
      INTO er_entity
      FROM pa0002
      WHERE pernr = enteredPernr.

endmethod.

我基本上只是从名为 1 的表中选择单行的 4 列pa0002PERNR是关键,所以它不应该真正干扰NACHN. 我已经检查了类型,所有这些属性都有Edm.String和对应的 Max。长度。我的查询中选定列SELECT的顺序与我在创建实体类型时指定的那些列的顺序相对应Employee

究竟是什么问题?

标签: selectodataabap

解决方案


INTO CORRESPONDING FIELDS OF er_entity如下使用。

method EMPLOYEESET_GET_ENTITY.

    DATA: ls_keytab TYPE LINE OF /IWBEP/T_MGW_NAME_VALUE_PAIR,
          enteredPernr TYPE string.

    LOOP AT it_key_tab INTO ls_keytab.
      enteredPernr = ls_keytab-value.
    ENDLOOP.

    SELECT SINGLE Pernr Nachn Vorna Gbdat
      INTO CORRESPONDING FIELDS OF er_entity
      FROM pa0002
      WHERE pernr = enteredPernr.

endmethod.

推荐阅读