Текущее время: Чт, июл 19 2018, 21:35

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Узнать количество строк внутренней таблицы
СообщениеДобавлено: Вт, июн 19 2018, 13:50 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, апр 17 2006, 12:03
Сообщения: 119
предполагаю, что самый быстрый способ будет таким

Code:
TYPES:
  BEGIN OF ts_data,
    f1 TYPE string,
    f2 TYPE i,
  END OF ts_data.

DATA:
      lt_data TYPE STANDARD TABLE OF ts_data WITH DEFAULT KEY
        WITH NON-UNIQUE SORTED KEY key1 COMPONENTS f1
        WITH NON-UNIQUE SORTED KEY key2 COMPONENTS f2
        WITH NON-UNIQUE SORTED KEY key3 COMPONENTS f1 f2.

lt_data = VALUE #(
  ( f1 = '14124' f2 = 1 )
  ( f1 = '12341' f2 = 1 )
  ( f1 = '15242' f2 = 1 )
  ( f1 = '21413' f2 = 2 )
  ( f1 = '12132' f2 = 3 ) ).

DATA(lv_count) = lines( FILTER #( lt_data USING KEY key1 WHERE f1 = |15242| ) ).
WRITE / lv_count.

lv_count = lines( FILTER #( lt_data USING KEY key2 WHERE f2 = 1 ) ).
WRITE / lv_count.

lv_count = lines( FILTER #( lt_data USING KEY key3 WHERE f1 <> |15242| AND f2 > 1  ) ).
WRITE / lv_count.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Узнать количество строк внутренней таблицы
СообщениеДобавлено: Вт, июн 19 2018, 14:04 
Начинающий
Начинающий

Зарегистрирован:
Вт, мар 20 2018, 12:16
Сообщения: 24
Besa написал:
Обработайте вне цикла данные, создав агрегационную таблицу, к ней уже обратитесь через read table внутри основного цикла.


Я решил удалил дубликаты с помощью DELETE ADJACENT DUPLICATES, теперь мне необходимо подсчитать сколько значений по каждому из дубликатов в другой таблице, как сделать это без loop не понимаю. Через read table же нельзя задать несколько условий?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Узнать количество строк внутренней таблицы
СообщениеДобавлено: Вт, июн 19 2018, 14:28 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, апр 17 2006, 12:03
Сообщения: 119
Если без LOOP, но с FOR ?
Code:
lv_count = REDUCE i( INIT count = 0 FOR wa IN lt_data WHERE ( f2 = 1 ) NEXT count = count + 1 ).
WRITE / lv_count.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Узнать количество строк внутренней таблицы
СообщениеДобавлено: Пт, июн 22 2018, 01:26 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 17:44
Сообщения: 2926
Откуда: Москва
baboon написал(а):
To Kuranov.Dmitry
Цитата:
с несортированными таблицами такой трюк не сработает даже если их сортировать вручную.

Вообще-то, сработает, если отсортировать вручную
и сделать чтение с binary search по ключу сортировки.

+
Я так оптимизировал разделение внутренней таблицы из MSEG по особому запасу. :pivo:

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


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

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


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

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


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

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