Текущее время: Вс, сен 14 2025, 23:31

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


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

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