SAPфорум.RU https://www.sapboard.ru/forum/ |
|
Старый сап, нет right oute,как оптимизировать? https://www.sapboard.ru/forum/viewtopic.php?f=13&t=96342 |
Страница 1 из 1 |
Автор: | sonics [ Пт, апр 27 2018, 09:27 ] |
Заголовок сообщения: | Старый сап, нет right oute,как оптимизировать? |
Старый сап есть только 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? подскажите пожалуйста |
Автор: | sonics [ Пт, апр 27 2018, 09:50 ] |
Заголовок сообщения: | Re: Старый сап, нет right oute,как оптимизировать? |
версия наша ABAP - 7.00 |
Автор: | sonics [ Ср, май 02 2018, 10:50 ] |
Заголовок сообщения: | Re: Старый сап, нет right oute,как оптимизировать? |
еще и проблема появилась, после удаления дублей, показывает пустую строку и несколько цифр в норм. потребности... но ни названия, ни каких других данных нет. |
Автор: | pberezin [ Чт, май 03 2018, 16:24 ] |
Заголовок сообщения: | Re: Старый сап, нет right oute,как оптимизировать? |
декомпозицией лефт-запроса на два отдельных массива данных (потребуется доп.внутренняя таблица) и программная проверка попадания записей одной вн.таблицы в другую (можно по предварительно-отсортированному одинаковому ключу, поиск совпадений будет быстрее - пример есть в Примерах абапкода). |
Автор: | Kengur [ Чт, май 10 2018, 10:40 ] |
Заголовок сообщения: | Re: Старый сап, нет right oute,как оптимизировать? |
right outer и не нужен. достаточно таблицы поменять местами в запросе и будет такой же эффект. |
Автор: | sonics [ Пн, май 14 2018, 13:00 ] |
Заголовок сообщения: | Re: Старый сап, нет right oute,как оптимизировать? |
pberezin написал: декомпозицией лефт-запроса на два отдельных массива данных (потребуется доп.внутренняя таблица) и программная проверка попадания записей одной вн.таблицы в другую (можно по предварительно-отсортированному одинаковому ключу, поиск совпадений будет быстрее - пример есть в Примерах абапкода). а конкретнее как программа demo называется, не подскажете? |
Автор: | other95 [ Ср, май 16 2018, 11:47 ] |
Заголовок сообщения: | Re: Старый сап, нет right oute,как оптимизировать? |
Уточните пожалуйста какой результат нужно получить. Разве при такой последовательности запросов результат оказавшийся в таблице gt_result_tab после того как отработает первый SELECT не будет затерт результатом второго? Если результаты должны быть объединены: То во втором SELECT вместо INTO должно быть APPENDING. Если записей в результатах ожидается относительно немного меньше (сотен тысяч записей), я бы "не парился" После второго запроса отсортировал бы результат по условно ключевым полям и DELETE ADJACENT DUPLICATES FROM gt_result_tab. ( Помнится в стародавние времена в FoxPro была в SELECT-ах директива FULL JOIN для таких целей ) ) |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |