VBELN查询时SELECT不返回行

时间:2019-07-10 13:30:52

标签: sql sap abap

我正在尝试从内部表中以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条件使其不返回任何行以及如何解决?

2 个答案:

答案 0 :(得分:5)

vbeln是一个具有十个位置的字段,并使用ALPHA转换例程(请参见数据元素后面的域)。这意味着该值将填充前导零(只要它仅包含数字)。由于这是字符类型字段,因此还必须使用撇号进行比较。因此,WHERE条件必须是这样的:

WHERE vbeln GT '0000004500'
  AND vbeln LT '0000006000'

答案 1 :(得分:-2)

您可以尝试使用范围;

首次使用;

数据:vbeln的r_vbeln类型范围。

数据:s_vbeln,就像r_vbeln的行。

s_vbeln-option ='BT'。

s_vbeln-sign ='I'。

s_vbeln-low ='0000004501'。

s_vbeln-high ='0000005999'。

将s_vbeln附加到r_vbeln。

选择条件; 在r_vbeln中的vbeln。

第二用法;

数据:vbeln的r_vbeln类型范围。

数据:s_vbeln,就像r_vbeln的行。

s_vbeln-option ='GT'。

s_vbeln-sign ='I'。

s_vbeln-low ='0000004500'。

将s_vbeln附加到r_vbeln。

s_vbeln-option ='LT'。

s_vbeln-sign ='I'。

s_vbeln-low ='0000006000'。

将s_vbeln附加到r_vbeln。

选择条件; 在r_vbeln中的vbeln。