Текущее время: Пт, июл 18 2025, 17:21

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Динимаический SQL  Тема решена
СообщениеДобавлено: Чт, мар 02 2006, 18:40 
Гость
Фрагмент кода

Code:
select
  *
from
  T
where
  ...
  and exists
  (
    select
      belnr
    from
      T2
    where
      (v_where)
  )


v_where - динамическая строка

Дополнительно требуется в зависимости от переменной
V_TYPE = ('X', ' ') получить вариант этого же запроса, но
уже с NOT EXISTS, то есть

Code:
select
  *
from
  T
where
  ...
  and [b]NOT[/b] exists
  (
    select
      belnr
    from
      T2
    where
      (v_where)
  )


Заменить динамически предикаты не получается. Писать дублирующий запрос не удобно - у меня таких переменных как V_TYPE в этом запросе несколько, т.е. придется писать N-сочетаний запроса. Как решить подобную задачу?


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, мар 03 2006, 02:35 
Гость
так может динамически формировать всё условие ? ну в смысле where верхнего уровня ...


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, мар 03 2006, 10:48 
Гость
Вложенный select выдает ошибку при включении его в WHERE. Вопрос еще актуален


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

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
А разве есть динамическое WHERE? Или вы про его жалкое подобие в виде внутренней таблицы, да еще с большими ограничениями?!
По моему лучше уж генерить весь Select.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, мар 03 2006, 12:43 
Модератор
Модератор

Зарегистрирован:
Пт, ноя 12 2004, 11:40
Сообщения: 542
Откуда: Москва
Пол: Мужской
Вот тест сделал все рабоатет...

Code:
DATA: equi_tab TYPE TABLE OF equi.

DATA: cond TYPE char64,
      itab       LIKE TABLE OF cond.

cond = 'stat  IN (''I0076'', ''I0320'')'.
APPEND cond TO itab.

SELECT *
  INTO TABLE equi_tab
  FROM equi AS e
  WHERE e~eqtyp  EQ 'A'      AND
        NOT exists (
                     SELECT *
                       FROM jest
                       WHERE (itab)
                   ).



Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, мар 06 2006, 15:06 
Гость
2 all и особенно 2 Ich will

Не внимательно читаете, мне надо нечто следующее...

Code:

data:
  v_not_or_nothing type string.

select
  *
from
  T
where
  ...
  and (v_not_or_nothing) exists
  (
    select
      belnr
    from
      T2
    where
      (v_where)
  )


или весь вложенный select должен быть динамическим, но это
не работает


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

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
subquery в динамическом where не поддерживается, в документации этого не нашел, но возможно есть нота какая-нибудь.
Вообще говоря, запрос
Code:
select
  *
from
  T
where
  ...
  and (v_not_or_nothing) exists
  (
    select
      belnr
    from
      T2
    where
      (v_where)
  )

cледовало бы транформировать в
Code:
select
  *
from
  T join T2 on T~belnr = T2~belnr
  where <что-то для T>
  and    <что-то для T2>.

_________________
С уважением, Сергей Королев


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

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


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

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


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

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