Текущее время: Пн, июл 21 2025, 18:52

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Подсчет и удаление повторений
СообщениеДобавлено: Ср, июн 18 2008, 08:59 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Ср, май 07 2008, 15:23
Сообщения: 13
Прошу помочь с реализацией отчета по HR, в котором необходимо найти сотрудников в пределах одного структурного подразделения,вывести данные о них(код должности,название,оклад,надбавку...) и тех сотрудников у которых совпадают определенные данные в пределах одного структурного подразделения(код,оклад,надбавка...) посчитать и вывести только одного с этими данными,а остальных не выводить,а просто вывести в отдельную колонку кол-во таких же сотрудников в этом подразделении.
Вопрос в том-как посчитать их и скрыть?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 18 2008, 09:10 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Как-то так:
Code:
SORT MEGATABLE BY Название.
LOOP AT MEGATABLE.
  Количество = Количество + 1.
  AT END OF Название.
    MOVE-CORRESPONDING MEGATABLE TO OUTPUTTABLE.
    OUTPUTTABLE-Количество = Количество.
    APPEND OUTPUTTABLE.
    CLEAR Количество.
  ENDAT.
ENDLOOP.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
  EXPORTING
    IT_FIELDCAT_LVC = Каталог полей
  TABLES
    T_OUTTAB = OUTPUTTABLE[].


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подсчет и удаление повторений
СообщениеДобавлено: Ср, июн 18 2008, 09:41 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, июн 25 2007, 17:37
Сообщения: 350
Пол: Мужской
Slavik написал(а):
Прошу помочь с реализацией отчета по HR, в котором необходимо найти сотрудников в пределах одного структурного подразделения,вывести данные о них(код должности,название,оклад,надбавку...) и тех сотрудников у которых совпадают определенные данные в пределах одного структурного подразделения(код,оклад,надбавка...) посчитать и вывести только одного с этими данными,а остальных не выводить,а просто вывести в отдельную колонку кол-во таких же сотрудников в этом подразделении.
Вопрос в том-как посчитать их и скрыть?


SELECT COUNT( * ) код должности SUM( оклад ) SUM( надбавку )
FROM таблица
WHERE структурa = структурa
GROUP BY код должности.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 18 2008, 10:07 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Ср, май 07 2008, 15:23
Сообщения: 13
John Doe написал:
Как-то так:
Code:
SORT MEGATABLE BY Название.
LOOP AT MEGATABLE.
  Количество = Количество + 1.
  AT END OF Название.
    MOVE-CORRESPONDING MEGATABLE TO OUTPUTTABLE.
    OUTPUTTABLE-Количество = Количество.
    APPEND OUTPUTTABLE.
    CLEAR Количество.
  ENDAT.
ENDLOOP.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
  EXPORTING
    IT_FIELDCAT_LVC = Каталог полей
  TABLES
    T_OUTTAB = OUTPUTTABLE[].



а где тут будет производиться выбор одинаковых полей? мы тут ведь просто отсортеруем по какомуто одному из полей и посчитаем счетчиком кол-во записей


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 18 2008, 10:09 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Ср, май 07 2008, 15:23
Сообщения: 13
и опять же,как скрыть повторения....?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 18 2008, 10:12 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, июн 25 2007, 17:37
Сообщения: 350
Пол: Мужской
Slavik написал(а):
и опять же,как скрыть повторения....?


А SQL Запрос вас не устраивает!? :?:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 18 2008, 10:23 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Ср, май 07 2008, 15:23
Сообщения: 13
Valeriy написал:
А SQL Запрос вас не устраивает!? :?:


надо в ALV


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подсчет и удаление повторений
СообщениеДобавлено: Ср, июн 18 2008, 10:45 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Slavik написал(а):
Прошу помочь с реализацией отчета по HR, в котором необходимо найти сотрудников в пределах одного структурного подразделения,вывести данные о них(код должности,название,оклад,надбавку...) и тех сотрудников у которых совпадают определенные данные в пределах одного структурного подразделения(код,оклад,надбавка...) посчитать и вывести только одного с этими данными,а остальных не выводить,а просто вывести в отдельную колонку кол-во таких же сотрудников в этом подразделении.
Вопрос в том-как посчитать их и скрыть?

Каких-то специальных опций на данный случай не припомню - поэтому предлагаю вручную(т.е. программно) считать повторы и чистить поля у "повторяющихся" записей. Конечно при этом возможность сортировки и пр. прийдётся запретить, чтобы не порушить божественной красоты отчёт.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подсчет и удаление повторений
СообщениеДобавлено: Ср, июн 18 2008, 11:19 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Ср, май 07 2008, 15:23
Сообщения: 13
sy-uname написал(а):
Каких-то специальных опций на данный случай не припомню - поэтому предлагаю вручную(т.е. программно) считать повторы и чистить поля у "повторяющихся" записей. Конечно при этом возможность сортировки и пр. прийдётся запретить, чтобы не порушить божественной красоты отчёт.


можно пример кода с такой чисткой?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 18 2008, 13:31 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
В моем примере я предлагал использовать две таблички: первая - массив данных, вторая - выходная экранная форма. Что смущает то?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 18 2008, 14:00 
Ассистент
Ассистент

Зарегистрирован:
Ср, дек 19 2007, 09:07
Сообщения: 31
Такой пример сойдет?
На входе таблица с данными о всех сотрудниках (gt_data) на выходе таблица для вывода данных (gt_outtab).
Code:
data: begin of gt_data occurs 0,
        fld1(10) type c,
        fld2 type i,
        cmp1(10) type c,
        cmp2 type d,
        cmp3 type i,
        fld3 type p,
        cnt type i,
      end of gt_data.
data: gt_outtab like gt_data occurs 0 with header line.

sort gt_data by cmp1 cmp2 cmp3.
read table gt_data index 1.
gt_outtab = gt_data.
gt_outtab-cnt = 0.
loop at gt_data from 2.
  add 1 to gt_outtab-cnt.
  if gt_outtab-cmp1 <> gt_data-cmp1 or
     gt_outtab-cmp2 <> gt_data-cmp2 or
     gt_outtab-cmp3 <> gt_data-cmp3.
    append gt_outtab.
    gt_outtab = gt_data.
    gt_outtab-cnt = 0.
  endif.
endloop.
add 1 to gt_outtab-cnt.
append gt_outtab.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 18 2008, 14:03 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 13:16
Сообщения: 1790
стандартный SAP Query -> Excel -> поиск повторений

_________________
/nex


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подсчет и удаление повторений
СообщениеДобавлено: Ср, июн 18 2008, 15:59 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Slavik написал(а):
...

можно пример кода с такой чисткой?

И ключ от квартиры, где деньги лежат?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 18 2008, 20:47 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Slavik написал(а):
а где тут будет производиться выбор одинаковых полей? мы тут ведь просто отсортеруем по какомуто одному из полей и посчитаем счетчиком кол-во записей


Вам дали отличный пример. Посмотрите в Help, как работает команда AT END OF. "Скрывать" повторы вам не нужно, т.к. на выходе в таблице OUTPUTTABLE у вас будут только уникальные записи плюс поле Количество будет содержать количество повторяющихся записей.

Важно заметить только, что AT END OF с причудами и очень важна именно структура таблицы. Поля, которые вам нужно сравнивать, должны быть декларированы в самом начале. Это все в Help описано и становится довольно быстро понятно на практике в дебаггере.


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

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


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

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


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

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