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

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


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

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


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

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