Текущее время: Пн, июл 21 2025, 15:13

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Ссылка на внутренную таблицу в подзапросе
СообщениеДобавлено: Вт, апр 10 2007, 15:06 
Начинающий
Начинающий

Зарегистрирован:
Пт, мар 23 2007, 10:58
Сообщения: 7
Откуда: Санкт-Петербург
Добрый день, коллеги. Я пытался использовать ссылку на внутренную таблицу в подзапросе, но это работает как то странно, выбирает некоторые ненужные записи, а нужные не выбирает, причем не всегда, а как то выборочно:roll: ... Пример кода такой:
Code:
SELECT
   table_1~a
   table_1~b
INTO TABLE
   selected_data
FROM
   table_1
FOR ALL ENTRIES IN
   itab
WHERE
   table_1~c EQ itab-c
AND
EXISTS (
      SELECT
        table_2~d
      FROM
        table_2
      WHERE
        table_2~e EQ itab~e   
        AND
        table_2~d EQ table_1~d
      ).

Имеет ли вообще такая конструкция право на жизнь?


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

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Леша, ты бы указал, какие поля являются ключевыми для каждых таблиц, легче было бы понять.


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

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
а еще бы несколько строк из каждой таблицы, чтобы пояснить "это работает как то странно, выбирает некоторые ненужные записи, а нужные не выбирает, причем не всегда, а как то выборочноRolling Eyes"

_________________
Счастье есть!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 10 2007, 15:40 
Начинающий
Начинающий

Зарегистрирован:
Пт, мар 23 2007, 10:58
Сообщения: 7
Откуда: Санкт-Петербург
Хорошо)) вот мой запрос полностью:
Code:
  SELECT
   bsid~kunnr
   bsid~vertn
   bsid~dmbtr
   bsid~shkzg
   bsid~blart
   bsid~bldat
   bsid~belnr
   bsid~gjahr
   bsid~buzei
   bkpf~cputm
  INTO TABLE
   finans_data
  FROM
   bsid INNER JOIN  bkpf ON bsid~bukrs EQ bkpf~bukrs
                    AND bsid~belnr EQ bkpf~belnr
                    AND bsid~gjahr EQ bkpf~gjahr
  FOR ALL ENTRIES IN
   lt_finans_table_data
  WHERE
   kunnr EQ lt_finans_table_data-kunnr
   AND
   bkpf~bukrs EQ '0101'
   AND
   bkpf~bldat IN date
   AND
   EXISTS (
         SELECT
           draw~zzkunnr
         FROM
           draw
         WHERE
           draw~doknr   EQ lt_finans_table_data-doknr
           AND
           draw~zzkunnr EQ lt_finans_table_data-kunnr
           AND
           draw~zzlifnr IN s_zzlifnr
         ).


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

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
на первый взгляд возможные проблемы, что ни в условии FOR ALL ENTRIES IN,
ни в EXISTS нет полного ограничения в условии по ключу.

надо бы убрать для начала EXISTS и посмотреть, почему попадают лишние документы.


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

Зарегистрирован:
Чт, ноя 23 2006, 17:37
Сообщения: 197
Откуда: Москва
Пол: Мужской
Возможно, я консерватор, но не проще заранее отфильтровать таблицу lt_finans_table_data, чем скрупулезно искать глюки?


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

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


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

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


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

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