Текущее время: Сб, июн 28 2025, 22:12

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Динамическое формирование WHERE c подзапросом
СообщениеДобавлено: Чт, ноя 24 2005, 16:21 
Гость
Коллеги!
Доводилось ли кому-нибудь формировать WHERE clause с
подзапросом динамически?

У меня при попытке задать в WHERE конструкцию типа:

A~VERS = ( SELECT MAX( VERS ) FROM NAP
WHERE NUMS = A~NUMS )

вываливается ошибка:
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 an invalid value "(". Litterals
are allowed as values, but not variables.

Возможно ли в динамически формируемом SQL в части WHERE
использовать подзапрос?

Спасибо!


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 24 2005, 17:24 
Специалист
Специалист

Зарегистрирован:
Чт, июн 23 2005, 18:05
Сообщения: 119
Динамическое where можно выполнить так:

DATA: carr_id TYPE spfli-carrid VALUE 'LH',
conn_id TYPE spfli-connid VALUE '0400'.

PARAMETER P_NAME(10) TYPE C.

DATA: city TYPE sgeocity-city,
lati TYPE p DECIMALS 2,
longi TYPE p DECIMALS 2.

SELECT SINGLE city latitude longitude
INTO (city, lati, longi)
FROM sgeocity
WHERE city IN ( select (P_NAME)
FROM spfli
WHERE carrid = carr_id AND
connid = conn_id ).

WRITE: city, lati, longi.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 24 2005, 17:42 
Гость
К сожалению мне нужно, чтобы вся конструкция WHERE была сформирована динамически и содержала подзапрос


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 24 2005, 17:56 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 31 2004, 14:57
Сообщения: 5258
Откуда: Ростов невеликий
Пол: Мужской
Jill написал(а):
К сожалению мне нужно, чтобы вся конструкция WHERE была сформирована динамически и содержала подзапрос

было уже - поиск пустите...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 24 2005, 18:25 
Гость
Мне удалось найти темы посвященные динамическому формированию
секции WHERE, но без использования ПОДЗАПРОСА.

Есть подозрение, что в статике подзапросы в WHERE работают,
а вот их использование при динамическом формировании секции
WHERE невозможно...


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 24 2005, 19:08 
Специалист
Специалист

Зарегистрирован:
Чт, июн 23 2005, 18:05
Сообщения: 119
Я попатался предложенный мной подзапрос оформить в виде таблицы tab:
where (tab),
получил сообщение об ошибке:
Что мол условие WHERE которое определено динамически содержит неправильное значение SELECT.
Значит получается что нельзя подзапросы в where использовать.


Последний раз редактировалось kizif Пт, ноя 25 2005, 10:16, всего редактировалось 1 раз.

Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 24 2005, 22:41 
Гость
Если всенепременно надо делать это динамически, можно динамически создать программу с одной единственной подпрограммой, в которой будет нужный select.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:   Тема решена
СообщениеДобавлено: Пт, ноя 25 2005, 05:15 
Гость
Code:
- You can only use literals as values, not variables.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 25 2005, 09:50 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 31 2004, 14:57
Сообщения: 5258
Откуда: Ростов невеликий
Пол: Мужской
Wizard написал(а):
Если всенепременно надо делать это динамически, можно динамически создать программу с одной единственной подпрограммой, в которой будет нужный select.

и это просто "до <я не знать русский языка>". дерзайте - пригодиться.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

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


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

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


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

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