Текущее время: Вт, июл 22 2025, 00:10

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


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

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


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

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