Текущее время: Сб, июл 19 2025, 08:06

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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