je suis supposé aller chercher le champ dis excep_point d'une table z_accounts pour la combinaison de company_code et account_number.Comment puis-je faire cela dans abap? Supposons que la structure de la table soit zaccounts (code_entreprise, numéro_de_compte, point_exception) dans l'intérêt de cet exemple.comment extraire un champ d'une table pour la combinaison de deux champs
Répondre
En supposant que vous avez la pleine clé primaire ...
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.
si vous n'avez pas le PK complet et il pourrait y avoir plusieurs valeurs pour 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.
Il y a au moins une autre variation, mais ce sont 2 que j'utilise le plus souvent.
En plus de la réponse Bryans, here est la documentation en ligne officielle sur Open SQL.
Pour information seulement. Lorsque vous sélectionnez des données dans une table, vous pouvez écrire des expressions complexes pour combiner différents champs. Par exemple, vous avez une table interne (itab) avec deux champs "A" et "B". Et vous allez sélectionner les données de la table DB (dbtab) qui ont 6 colonnes - "z", "x", "y", "u", "v", "w". Et par exemple chaque champ est de type char2 Vous visez à cimbine "z", "x", "y", "u" dans le champ "A" de la table interne et "v", "w" dans le champ "B". Vous pouvez écrire un code simple:
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>.
Ce code simple fait que vous travail fait très simple
select z A + 0 (2) x A + 2 (2) ... est très sympa, jamais vu cette méthode de sélection délicate. Merci beaucoup. – Hartmut