как извлечь поле из таблицы для комбинации двух полей - PullRequest
3 голосов
/ 01 октября 2010

Я должен получить поле скажем excep_point из таблицы z_accounts для комбинации company_code и account_number. Как я могу это сделать в abap?Предположим, что для этого примера структура таблицы имеет zaccounts (company_code, account_number, excep_point).

Ответы [ 3 ]

3 голосов
/ 02 февраля 2011

Только для информации.Когда вы выбираете данные в таблицу, вы можете писать сложные выражения для объединения различных полей.Например, у вас есть внутренняя таблица (itab) с двумя полями «A» и «B».И вы собираетесь выбрать данные из таблицы БД (dbtab), которые имеют 6 столбцов - «z», «x», «y», «u», «v», «w».И, например, каждое поле имеет тип char2. Вы хотите указать "z", "x", "y", "u" в поле "A" внутренней таблицы и "v", "w" в поле "B".Вы можете написать простой код:

select z as A+0(2)   
       x as A+2(2)   
       y as A+4(2)  
       u as A+6(2)   
       v as B+0(2)  
       w as B+2(2)  FROM dbtab  
       INTO CORRESPONDING FIELDS OF TABLE itab
          WHERE <where condition>.

Этот простой код делает вашу работу очень простой

3 голосов
/ 01 октября 2010

Если у вас есть полный первичный ключ ...

data: gv_excep_point type zaccounts-excep_point.

select single excep_point
into gv_excep_point
from zaccounts 
where company_code = some_company_code
 and account_number = some_account_number.

если у вас нет полного PK и может быть несколько значений для excep_point

data: gt_excep_points type table of zaccounts-excep_point.

select excep_point
into table gt_excep_points
from zaccounts 
where company_code = some_company_code
 and account_number = some_account_number.

Существует, по крайней мере, другой вариант, но я чаще всего пользуюсь этими двумя.

1 голос
/ 01 октября 2010

В дополнение к ответу Брайана, здесь - официальная онлайн-документация по Open SQL.

...