Текущее время: Пн, июн 23 2025, 01:31

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Как максимально быстро и изящно сделать group by по максимальному времени создания?
СообщениеДобавлено: Вт, ноя 03 2015, 15:23 
Старший специалист
Старший специалист

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как максимально быстро и изящно сделать group by по максимальному времени создания?
СообщениеДобавлено: Вт, ноя 03 2015, 15:35 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Вт, май 17 2005, 13:35
Сообщения: 4871
Откуда: Москва
Пол: Мужской
Ну, я немного упрощал задачу, чтобы не лезть в дебри.
Скажем так, в моем случае для DOCNUM используется параллельно несколько разных диапазонов номеров.

_________________
Удача - результат нашего желания (© А. Нортон)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как максимально быстро и изящно сделать group by по максимальному времени создания?
СообщениеДобавлено: Вт, ноя 03 2015, 16:08 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, мар 29 2007, 11:51
Сообщения: 330
Откуда: Yugorsk.RU
Пол: Мужской
FOR ALL ENTRIES IN lt_matnr
WHERE a~matnr = lt_matnr-table_line
AND a~cretime =
( SELECT MAX( b~cretime )
FROM table1 AS b
WHERE b~matnr = a~matnr
AND b~docnum = a~docnum ).

Т.е. по одному и тому же matnr по томуже docnum будет много записей с разным cretime (журнал истории)?
М.б. тогда в отдельную таблицу БД сохранять последний cretime по первичному ключу matnr+docnum (эдакий вторичный индекс к MSEG :) ? Тогда на больших объёмах накладные расходы на выборку по идее будут невелеки.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как максимально быстро и изящно сделать group by по максимальному времени создания?
СообщениеДобавлено: Вт, ноя 03 2015, 16:31 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Вт, май 17 2005, 13:35
Сообщения: 4871
Откуда: Москва
Пол: Мужской
Коллеги, что-то все предложения в обсуждении уже по второму кругу пошли.
В конце концов у меня проблема решена.
Для истории мой (работающий) селект с моими конкретными табличками:

Code:
select *
        from wbbp into TABLE lt_wbbp_prev_version
        FOR ALL ENTRIES IN lt_wbbp_time_search
        WHERE locnr = lt_wbbp_time_search-locnr and
              matnr = lt_wbbp_time_search-matnr and
              ZZCRETIME = ( SELECT max( ZZCRETIME )
                               from wbbp
                               where   locnr = C_WBBH-locnr
                                  and   labrl   IN ('X', 'P', 'S' )
                                  and   matnr = lt_wbbp_time_search-matnr
                                    )
              %_HINTS ORACLE '&max_blocking_factor 100&'
                      ORACLE '&max_in_blocking_factor 100&'


Если больше оригинальных идей нет, предлагаю тему закрыть.

_________________
Удача - результат нашего желания (© А. Нортон)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как максимально быстро и изящно сделать group by по максимальному времени создания?
СообщениеДобавлено: Чт, ноя 05 2015, 18:02 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, авг 18 2010, 15:38
Сообщения: 97
nicky555 написал:
Возможно, коллеги, сведущие в Oracle (или какая у вас СУБД), подскажут конструкцию на Native SQL? :roll: Это, наверное, будет круче и быстрее.

а потом при переходе на хану вашим коллегам будет очень весело этот запрос переписывать. Ну и слава богу - без интересных задач жизнь наша была бы так скучна :wink:


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как максимально быстро и изящно сделать group by по максимальному времени создания?
СообщениеДобавлено: Пт, ноя 06 2015, 09:47 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Вт, май 17 2005, 13:35
Сообщения: 4871
Откуда: Москва
Пол: Мужской
arcanist написал(а):
nicky555 написал:
Возможно, коллеги, сведущие в Oracle (или какая у вас СУБД), подскажут конструкцию на Native SQL? :roll: Это, наверное, будет круче и быстрее.

а потом при переходе на хану вашим коллегам будет очень весело этот запрос переписывать. Ну и слава богу - без интересных задач жизнь наша была бы так скучна :wink:


Ну хана же не стесняется рекламировать как свое преимущество всякие фичи, использование которых полностью убивает идею универсальности SAP ERP относительно широкого ряда БД? Например, через несколько лет Oracle так разовьет свои инмемори технологии, что станет на две головы выше SAP HANA. И как туда потом мигрировать с ханы?

Это не реклама Native SQL, скорее наоборот: использование любых особенностей конкретной БД под SAP ERP чревато большими проблемами при последующей миграции на другую БД. И хана тут в первом ряду.

_________________
Удача - результат нашего желания (© А. Нортон)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как максимально быстро и изящно сделать group by по максимальному времени создания?
СообщениеДобавлено: Пн, ноя 09 2015, 19:50 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, авг 18 2010, 15:38
Сообщения: 97
LKU написал:
Ну хана же не стесняется рекламировать как свое преимущество всякие фичи, использование которых полностью убивает идею универсальности SAP ERP относительно широкого ряда БД? Например, через несколько лет Oracle так разовьет свои инмемори технологии, что станет на две головы выше SAP HANA. И как туда потом мигрировать с ханы?

Это не реклама Native SQL, скорее наоборот: использование любых особенностей конкретной БД под SAP ERP чревато большими проблемами при последующей миграции на другую БД. И хана тут в первом ряду.

как я Вас понимаю - у меня от текущей маркетинговой политики SAP в области HANA у самого голова кругом идет. Но, очевидно, ребята в вальдорве решили, что хватит кормить оракл - поэтому идея универсальности SAP ERP становится, как бы это сказать, не столь значимой в рамках новых парадигм


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как максимально быстро и изящно сделать group by по максимальному времени создания?
СообщениеДобавлено: Пн, ноя 09 2015, 20:43 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
arcanist написал(а):
Но, очевидно, ребята в вальдорве решили, что хватит кормить оракл - поэтому идея универсальности SAP ERP становится, как бы это сказать, не столь значимой в рамках новых парадигм

Зажрались они там в Вальдорфе. Сколько у них удачных новинок за последние 10 лет было?

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как максимально быстро и изящно сделать group by по максимальному времени создания?
СообщениеДобавлено: Пн, ноя 30 2015, 14:18 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 20 2007, 18:21
Сообщения: 1613
LKU написал:
Например, через несколько лет Oracle так разовьет свои инмемори технологии, что станет на две головы выше SAP HANA.

В параллельной реальности? :D Оракл был есть и будет есть на две инмемори головы выше ханы.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как максимально быстро и изящно сделать group by по максимальному времени создания?
СообщениеДобавлено: Пн, ноя 30 2015, 17:25 
Ассистент
Ассистент

Зарегистрирован:
Чт, май 17 2007, 16:31
Сообщения: 40
Откуда: Санкт-Петербург
Code:
select *
        from wbbp into TABLE lt_wbbp_prev_version
        FOR ALL ENTRIES IN lt_wbbp_time_search
        WHERE locnr = lt_wbbp_time_search-locnr and
              matnr = lt_wbbp_time_search-matnr and
              ZZCRETIME = ( SELECT max( ZZCRETIME )
                               from wbbp
                               where   locnr = C_WBBH-locnr
                                  and   labrl   IN ('X', 'P', 'S' )
                                  and   matnr = lt_wbbp_time_search-matnr
                                    )
              %_HINTS ORACLE '&max_blocking_factor 100&'
                      ORACLE '&max_in_blocking_factor 100&'

А чему в этот момент равна переменная C_WBBH-locnr ? Если это номер одного дебитора, то почему он в FOR ALL ENTRIES ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу Пред.  1, 2

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


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

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


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

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