Текущее время: Чт, мар 28 2024, 20:42

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Старый сап, нет right oute,как оптимизировать?
СообщениеДобавлено: Пт, апр 27 2018, 09:27 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
Старый сап
есть только left outer и inner
мне надо как-то оптимиизровать этот код:
Code:
SELECT-OPTIONS: so_matnr FOR zppmrp5-matnr, "Изделие
                so_mat1 FOR zppmrp5-matnr_1, "ДСЕ
                so_mat2 FOR zppmrp5-matnr_2, "Узел
                so_arb1 FOR zppmrp5-arbpl_1, "Цех изготовитель
                so_arb2 FOR zppmrp5-arbpl_2. "Цех потребитель

SELECT zppmrp5~matnr_1 zppmrp5~DATUV zppmrp5~matnr_2 zppmrp5~matnr zppmrp5~gamng zppmrp5~gamng_1 zppmrp5~WERKS zppmrp5~arbpl_1 zppmrp5~arbpl_2 zppmrp5~datuv zppmrp5~seqnr zppmrp5~elevel zppmrp5~pbdnr
       zppmrp5_tmp1~matnr_1 zppmrp5_tmp1~DATUV zppmrp5_tmp1~matnr_2 zppmrp5_tmp1~WERKS zppmrp5_tmp1~gamng as gamng_L  zppmrp5_tmp1~gamng_1 as gamng_1_L zppmrp5_tmp1~matnr zppmrp5_tmp1~arbpl_1 zppmrp5_tmp1~arbpl_2 zppmrp5_tmp1~datuv zppmrp5_tmp1~seqnr
zppmrp5_tmp1~elevel zppmrp5_tmp1~pbdnr
  INTO CORRESPONDING FIELDS OF TABLE gt_result_tab
  FROM zppmrp5
  LEFT OUTER
    JOIN zppmrp5_tmp1 on zppmrp5_tmp1~matnr = zppmrp5~matnr
        AND zppmrp5_tmp1~matnr_1 = zppmrp5~matnr_1
        AND zppmrp5_tmp1~matnr_2 = zppmrp5~matnr_2
        AND zppmrp5_tmp1~arbpl_1 = zppmrp5~arbpl_1
        AND zppmrp5_tmp1~arbpl_2 = zppmrp5~arbpl_2
  WHERE zppmrp5~elevel = 1.


SELECT zppmrp5~matnr_1 zppmrp5~matnr_2 zppmrp5~matnr zppmrp5~WERKS zppmrp5~arbpl_1 zppmrp5~gamng zppmrp5~gamng_1 zppmrp5~arbpl_2 zppmrp5~datuv zppmrp5~seqnr zppmrp5~elevel zppmrp5~pbdnr
       zppmrp5_tmp1~matnr_1 zppmrp5_tmp1~matnr_2 zppmrp5_tmp1~WERKS zppmrp5_tmp1~gamng as gamng_L  zppmrp5_tmp1~gamng_1 as gamng_1_L zppmrp5_tmp1~matnr zppmrp5_tmp1~arbpl_1 zppmrp5_tmp1~arbpl_2 zppmrp5_tmp1~datuv zppmrp5_tmp1~seqnr zppmrp5_tmp1~elevel
zppmrp5_tmp1~pbdnr
  INTO CORRESPONDING FIELDS OF TABLE gt_result_tab
  FROM zppmrp5_tmp1
  LEFT OUTER
    JOIN zppmrp5 on zppmrp5~matnr = zppmrp5_tmp1~matnr
        AND zppmrp5~matnr_1 = zppmrp5_tmp1~matnr_1
        AND zppmrp5~matnr_2 = zppmrp5_tmp1~matnr_2
        AND zppmrp5~arbpl_1 = zppmrp5_tmp1~arbpl_1
        AND zppmrp5~arbpl_2 = zppmrp5_tmp1~arbpl_2
  WHERE zppmrp5_tmp1~elevel = 1.

это тупо как то выглядит дальше
я не понимаю как мне сделать рабочими селекты?
два раза описать в WHERE?
подскажите пожалуйста


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Старый сап, нет right oute,как оптимизировать?
СообщениеДобавлено: Пт, апр 27 2018, 09:50 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
версия наша ABAP - 7.00


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Старый сап, нет right oute,как оптимизировать?
СообщениеДобавлено: Ср, май 02 2018, 10:50 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
еще и проблема появилась, после удаления дублей, показывает пустую строку :( и несколько цифр в норм. потребности...
но ни названия, ни каких других данных нет.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Старый сап, нет right oute,как оптимизировать?
СообщениеДобавлено: Чт, май 03 2018, 16:24 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, мар 29 2007, 11:51
Сообщения: 330
Откуда: Yugorsk.RU
Пол: Мужской
декомпозицией лефт-запроса на два отдельных массива данных (потребуется доп.внутренняя таблица) и программная проверка попадания записей одной вн.таблицы в другую (можно по предварительно-отсортированному одинаковому ключу, поиск совпадений будет быстрее - пример есть в Примерах абапкода).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Старый сап, нет right oute,как оптимизировать?
СообщениеДобавлено: Чт, май 10 2018, 10:40 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 20 2007, 18:21
Сообщения: 1613
right outer и не нужен. достаточно таблицы поменять местами в запросе и будет такой же эффект.

_________________
я твой сап эфай внедрял
BAdI-позитив
Взять немножечко абопу, сунь туда кошачью *опу, RFC лапки, БТ старой бабки, на медленном базиснике переносить, тестовое окружение материть, снимать SAT пенку, биться головой о стенку, охапка тайм-шитов, отчет готов!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Старый сап, нет right oute,как оптимизировать?
СообщениеДобавлено: Пн, май 14 2018, 13:00 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
pberezin написал:
декомпозицией лефт-запроса на два отдельных массива данных (потребуется доп.внутренняя таблица) и программная проверка попадания записей одной вн.таблицы в другую (можно по предварительно-отсортированному одинаковому ключу, поиск совпадений будет быстрее - пример есть в Примерах абапкода).

а конкретнее как программа demo называется, не подскажете?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Старый сап, нет right oute,как оптимизировать?
СообщениеДобавлено: Ср, май 16 2018, 11:47 
Ассистент
Ассистент

Зарегистрирован:
Пн, апр 15 2013, 14:49
Сообщения: 48
Откуда: Санкт-Петербург
Пол: Мужской
Уточните пожалуйста какой результат нужно получить.
Разве при такой последовательности запросов результат оказавшийся в таблице gt_result_tab после того как отработает первый SELECT
не будет затерт результатом второго?
Если результаты должны быть объединены:

То во втором SELECT вместо INTO должно быть APPENDING.
Если записей в результатах ожидается относительно немного меньше (сотен тысяч записей), я бы "не парился"
После второго запроса отсортировал бы результат по условно ключевым полям и DELETE ADJACENT DUPLICATES FROM gt_result_tab.

( Помнится в стародавние времена в FoxPro была в SELECT-ах директива FULL JOIN для таких целей :)) )


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

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


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

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


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

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