Abap 将DB表中的单个字段提取到itab中
我想从透明表Abap 将DB表中的单个字段提取到itab中,abap,opensql,Abap,Opensql,我想从透明表z\u accounts中获取a字段,比如excep\u point,用于公司代码和账号的组合。如何在ABAPSQL中执行此操作 假设表结构是 |company_code | account_number | excep_point | 假设您拥有完整的主键 data: gv_excep_point type zaccounts-excep_point. select single excep_point into gv_excep_point from zaccounts w
z\u accounts
中获取a字段,比如excep\u point
,用于公司代码
和账号
的组合。如何在ABAPSQL中执行此操作
假设表结构是
|company_code | account_number | excep_point |
假设您拥有完整的主键
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.
至少还有另外一种变体,但这是我最常使用的两种变体。除了Bryan的答案之外,还有关于OpenSQL的官方在线文档。仅供参考。在表中选择数据时,可以编写复杂的表达式来组合不同的字段。例如,您有两个字段“A”和“B”的内部表(itab)。您将从DB表(dbtab)中选择数据,它有6列——“z”、“x”、“y”、“u”、“v”、“w”。例如,每个字段都是char2类型,您的目标是在内部表的“A”字段中合并“z”、“x”、“y”、“u”,在“B”字段中合并“v”、“w”。您可以编写简单的代码:
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>.
选择z作为+0(2)
x作为A+2(2)
y为A+4(2)
u作为A+6(2)
v为B+0(2)
w为dbtab中的B+2(2)
进入表itab的相应字段
哪里
这个简单的代码使您的工作完成得非常简单选择z作为+0(2)x作为+2(2)。。。非常好,从未见过这种狡猾的选择方法。多谢各位。