我正在尝试从内部表的 alv 中显示表,其中行是从存储在数据库中的表中添加的。如果没有 where 条件,我看到行显示在 alv 中,但在 select 语句中带有 where 条件,不会返回任何行。
这是代码:
REPORT ZSAM.
DATA: IT_1 TYPE STANDARD TABLE OF VBAK.
select vbeln audat netwr waerk vkorg vtweg
from VBAK
into corresponding fields of Table IT_1
where vbeln > 4500
and vbeln < 6000.
知道为什么使用 where 条件使其不返回任何行以及如何修复吗?
> vbeln 是一个具有十个位置的字段,并使用ALPHA
转换例程(请参阅数据元素后面的域(。这意味着该值由前导零填充(只要它只包含数字(。由于这是一个字符类型字段,因此您还必须使用撇号进行比较。因此,WHERE
条件必须如下所示:
WHERE vbeln GT '0000004500'
AND vbeln LT '0000006000'
您可以尝试使用范围;
首次使用;
数据:r_vbeln VBELN 的类型范围。
数据:s_vbeln像r_vbeln线。
s_vbeln选项="BT"。
s_vbeln符号="I"。
s_vbeln低 = '0000004501'。
s_vbeln高='0000005999'。
将s_vbeln追加到r_vbeln。
选择条件;其中 VBELN 在r_vbeln。
第二次使用;
数据:r_vbeln VBELN 的类型范围。
数据:s_vbeln像r_vbeln线。
s_vbeln选项="GT"。
s_vbeln符号="I"。
s_vbeln低 = '0000004500'。
将s_vbeln追加到r_vbeln。
s_vbeln选项="LT"。
s_vbeln符号="I"。
s_vbeln低='0000006000'。
将s_vbeln追加到r_vbeln。
选择条件;其中 VBELN 在r_vbeln。