Текущее время: Ср, июн 18 2025, 08:17

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: where (itab).
СообщениеДобавлено: Ср, ноя 10 2004, 11:33 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 10:49
Сообщения: 95
Откуда: 4.6C
Доброго времени. подскажите, плиз, как заполнить itab в случае
select *
from ...
into ...
where (itab).
если знак "=" то все работает, но можно ли использовать IN в itab. если до, то как.
спасибо


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 10 2004, 11:38 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 08:10
Сообщения: 1024
Для того чтобы использовать IN необходимо, чтобы в конструкции
Code:
... in ITAB

ITAB обладала определенной структурой (OPTION, SIGN, и т.п.) или попросту была объявлена как RANGES. Ну и соответственно заполнена есссно


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 10 2004, 11:47 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, авг 18 2004, 09:17
Сообщения: 477
Откуда: Москва
Пол: Мужской
Manticore написал(а):
Для того чтобы использовать IN необходимо, чтобы в конструкции
Code:
... in ITAB

ITAB обладала определенной структурой (OPTION, SIGN, и т.п.) или попросту была объявлена как RANGES. Ну и соответственно заполнена есссно

Еще для select в where clause можно перечислять список значений.
Например, bwart in ('RE','RV') и т.п.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: where (itab).
СообщениеДобавлено: Ср, ноя 10 2004, 11:49 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, авг 18 2004, 09:17
Сообщения: 477
Откуда: Москва
Пол: Мужской
Sten написал(а):
Доброго времени. подскажите, плиз, как заполнить itab в случае
select *
from ...
into ...
where (itab).
если знак "=" то все работает, но можно ли использовать IN в itab. если до, то как.
спасибо

Можно поинтересоваться, зачем тебе такая конструкция?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 10 2004, 12:00 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 10:49
Сообщения: 95
Откуда: 4.6C
тут itab имеет чуток другое значение.
пример
data: begin of itab occurs 10,
line(256),
end of itab.
...
append 'fld = ''const'' and'
to itab.

append 'fld2 = ''const2'''
to itab.

select from into
where (itab).
****************** этот пример работает
но хочется сделать, чтобы
append 'fld2 IN zzz'
to itab.
где у zzz for ... или ranges


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 10 2004, 12:10 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 10:49
Сообщения: 95
Откуда: 4.6C
Дмитрий написал:
Еще для select в where clause можно перечислять список значений.
Например, bwart in ('RE','RV') и т.п.

вот терь понял свой DUMP. ))

у меня неизвестна таблица, из кот будут выбираться данные. поля выбора будет выбирать пользователь. (тут все понятно, как сделать)
вот хочу вписать в where clause выбранные пользователем поля.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: where (itab).
СообщениеДобавлено: Ср, ноя 10 2004, 12:55 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Sten написал(а):
если знак "=" то все работает, но можно ли использовать IN в itab. если до, то как.
спасибо


Зависит от версии.
Например, в 4.0 не работала точно.
А в 4.7 - работает.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 10 2004, 13:01 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 10:49
Сообщения: 95
Откуда: 4.6C
Версия 4.6С. в ней воможно реализовать
itab-line = 'fld in zfld'
... where (itab) ????
thanx


Последний раз редактировалось Sten Ср, ноя 10 2004, 15:24, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 10 2004, 13:56 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
А не могли бы Вы привести более полный код, который у Вас заработал? Я тоже столкнулся с подобной проблемой, но, найдя нижеследующую фразу, не стал пытаться дальше, а сделал по-другому. А фраза такая (для 4.7)

To specify a condition dynamically, use:

SELECT ... WHERE (<itab>) ...

where <itab> is an internal table with line type C and maximum length 72 characters. All of the conditions listed above except for selection tables, can be written into the lines of <itab>. However, you may only use literals, and not the names of data objects.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 10 2004, 14:48 
Специалист
Специалист

Зарегистрирован:
Чт, авг 19 2004, 07:31
Сообщения: 234
Откуда: Нижнекамск
я тоже хочу код посмотреть(4.6С)
а то странно...потому как у меня Help тоже на чистом русском языке выдал

(itab)

You may only use this variant for SELECT. The internal table itab may only have one field. This must have type C, and may not be longer than 72 characters. You must specify itab in parentheses, without a space between the parentheses and the table name. The condition contained in the internal table must have the same form as a corresponding condition in the ABAP source code. The following restrictions apply:

- You can only use literals as values, not variables.

- You cannot use the IN operator in the form f1 IN itab1.


The internal table itab may be empty.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 10 2004, 15:23 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 10:49
Сообщения: 95
Откуда: 4.6C
страшно извиняюсь, забыл поставить знак вопроса в конце предложения.
но как я сейчас и вижу из хелпа , IN реализовать в 4.6С, нельзя!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 10 2004, 16:34 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Очевидное-невероятное :lol: .
На самом деле - видимо, этот раздел хелпника еще с версии 4.0 не обновлялся.
Тем не менее - работает.
Отсюда мораль - хелпнику полностью доверять нельзя.
Все нужно проверять экспериментально (если, конечно, оно вам сильно надо).

Вместо YHTRACE - подставить любую другую таблицу.
=======================
report Z111_TMP .

tables: yhtrace.

data: t_conv(100) occurs 0 with header line,
t_traces like yhtrace occurs 0.

select-options: so_trace for yhtrace-trace_id.

start-of-selection.

t_conv = 'TRACE_ID IN SO_TRACE'.
append t_conv.

select * into table t_traces
from yhtrace
where (t_conv).

break-point.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 10 2004, 16:57 
Специалист
Специалист

Зарегистрирован:
Чт, авг 19 2004, 07:31
Сообщения: 234
Откуда: Нижнекамск
вот так вот я получил по чайнику в дампе :D

The current ABAP/4 program attempted to execute an ABAP/4 Open SQL
statement containing a WHERE condition of the form WHERE (itab) or
WHERE ... AND (itab). The part of the WHERE condition specified at
runtime in the internal table itab contains the operator
IN (v1, ..., vn)
in incomplete form.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 10 2004, 17:07 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Eugene написал(а):
вот так вот я получил по чайнику в дампе :D

The current ABAP/4 program attempted to execute an ABAP/4 Open SQL
statement containing a WHERE condition of the form WHERE (itab) or
WHERE ... AND (itab). The part of the WHERE condition specified at
runtime in the internal table itab contains the operator
IN (v1, ..., vn)
in incomplete form.


Значит, в вашей версии не работает :) .
Я же говорю - все дело в версии. У меня лично работает, по честному проверял (Web AS 6.40).

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 10 2004, 21:03 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Я получал точно такой же дамп.
А может, дело не в версии SAP, в версии БД?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB