SELECT не возвращает строки при запросе VBELN - PullRequest
1 голос
/ 10 июля 2019

Я пытаюсь отобразить таблицу в alv из внутренней таблицы, куда добавляются строки из таблицы, хранящейся в базе данных. Без условия where я вижу строки, отображаемые в alv, но с условием where в операторе select строки не возвращаются.

Вот код:

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 ]

5 голосов
/ 10 июля 2019

vbeln - это поле с десятью позициями и использует ALPHA подпрограмму преобразования (см. Домен за элементом данных). Это означает, что значение заполнено начальными нулями (если оно содержит только цифры). Поскольку это поле типа символа, для сравнения также необходимо использовать апострофы. Итак, условие WHERE должно быть таким:

WHERE vbeln GT '0000004500'
  AND vbeln LT '0000006000'
0 голосов
/ 10 июля 2019

Вы можете попробовать использовать диапазон;

Первое использование;

DATA: r_vbeln TYPE RANGE OF vbeln.

DATA: s_vbeln LIKE LINEOF r_vbeln.

s_vbeln-option = 'BT'.

s_vbeln-sign = 'I'.

s_vbeln-low = '0000004501'.

s_vbeln-high = '0000005999'.

APPEND s_vbeln TO r_vbeln.

ВЫБРАТЬ условие; ГДЕ vbeln IN r_vbeln.

Второе использование;

DATA: r_vbeln TYPE RANGE of vbeln.

DATA: s_vbeln LIKELINE OF r_vbeln.

s_vbeln-option = 'GT'.

s_vbeln-sign = 'I'.

s_vbeln-low = '0000004500'.

APPEND s_vbeln TO r_vbeln.

s_vbeln-option = 'LT'.

s_vbeln-sign = 'I'.

s_vbeln-low = '0000006000'.

APPEND s_vbeln TO r_vbeln.

ВЫБРАТЬ условие; ГДЕ ВБЕЛН В РІВБЕЛН.

...