Текущее время: Ср, июл 23 2025, 18:08

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Вопрос новичка
СообщениеДобавлено: Ср, ноя 03 2010, 18:26 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, июн 24 2008, 23:13
Сообщения: 117
Добрый вечер. В таблице konv 2 строчки (по результатам запроса SELECT). Меня интересует сумма строчек по полю kbetr, а он пишет только последнюю строку. Заранее прошу прощения за глупость вопроса.

Code:
CLEAR v_kbetr.
    SELECT kbetr
    INTO v_kbetr
    FROM konv
    WHERE knumv = ls_vbak-knumv
      AND kposn = it_vbap-posnr
      AND kschl = 'J3G0'.

    IF sy-subrc = 0 AND
       v_kbetr IS NOT INITIAL.
      l_codi_flg = 'X'.
      v_kbetr = v_kbetr / 10.
      WRITE v_kbetr TO gs_item-diff_coef NO-GROUPING LEFT-JUSTIFIED.
      IF v_kbetr < 0.
        REPLACE '-' WITH space INTO gs_item-diff_coef.
        CONCATENATE '-' gs_item-diff_coef INTO gs_item-diff_coef.
      ENDIF.
      SHIFT gs_item-diff_coef RIGHT DELETING TRAILING ' 0'.
      SHIFT gs_item-diff_coef RIGHT DELETING TRAILING ','.
      SHIFT gs_item-diff_coef LEFT DELETING LEADING space.
      CONCATENATE gs_item-diff_coef '%'
             INTO gs_item-diff_coef.
    ELSE.
      gs_item-diff_coef = '-'.
    ENDIF.
ENDSELECT.

PS Пишу код обычно на С++ - очень сложно писать без For
Спасибо.

_________________
This is "Sick, Sad World" © Daria


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

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
F1 по select-у смотрите

Цитата:
Example to find the number of passengers, the total luggage weight, and the average weight of the luggage for all Lufthansa flights on 02/28/2001:

DATA: count TYPE I, sum TYPE P DECIMALS 2, avg TYPE F,
connid LIKE sbook-connid.

SELECT connid COUNT( * ) SUM( luggweight ) AVG( luggweight )
INTO (connid, count, sum, avg)
FROM sbook
WHERE
carrid = 'LH ' AND
fldate = '20010228'
GROUP BY connid.
WRITE: / connid, count, sum, avg.
ENDSELECT.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос новичка
СообщениеДобавлено: Ср, ноя 03 2010, 19:59 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, июн 24 2008, 23:13
Сообщения: 117
Спасибо

_________________
This is "Sick, Sad World" © Daria


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос новичка
СообщениеДобавлено: Пн, ноя 08 2010, 14:52 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, июн 24 2008, 23:13
Сообщения: 117
При использовании SUM появляется ошибка "Aggregate functions and the addition DISTINCT are not supported in field lists for pooled and cluster tables." В таблице это поле типа CURR.

_________________
This is "Sick, Sad World" © Daria


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос новичка
СообщениеДобавлено: Пн, ноя 08 2010, 15:17 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
LightUp написал(а):
При использовании SUM появляется ошибка "Aggregate functions and the addition DISTINCT are not supported in field lists for pooled and cluster tables." В таблице это поле типа CURR.

Сразу не обратил внимание, konv является таблицей кластера, функции агрегирования работать не будут (в сообщение это написано). Опять таки я Вам говорю - F1 по select-у смотрите. Так же книжка Кремчера, также примеры тр. abapdocu (там как раз есть форматирование данных при считывании, Использование плоских внутр. таблиц и т.д. и т.п.)


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

Зарегистрирован:
Ср, май 19 2010, 15:54
Сообщения: 77
LightUp написал(а):
При использовании SUM появляется ошибка "Aggregate functions and the addition DISTINCT are not supported in field lists for pooled and cluster tables." В таблице это поле типа CURR.


Я так понял вам надо сделать сумму по определенному полю из кластерной таблицы?
v_kbetr у вас - internal table c полем kbetr?
Тогда надо делать так:

Code:
CLEAR v_kbetr.
REFRESH v_kbetr.

SELECT kbetr
INTO TABLE v_kbetr
FROM konv
WHERE knumv = ls_vbak-knumv
    AND kposn = it_vbap-posnr
    AND kschl = 'J3G0'.

DATA: lv_tax_sum TYPE konv-kbetr.
CLEAR lv_tax_sum.

LOOP AT v_kbetr.
    lv_tax_sum = lv_tax_sum + v_kbetr-kbetr.
ENDLOOP.



Да, и когда чистите интернал таблицу перед селектом - помимо CLEAR делайте и REFRESH!

_________________
F5-F6-F7-F8


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос новичка
СообщениеДобавлено: Чт, ноя 18 2010, 10:41 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, окт 15 2010, 14:06
Сообщения: 292
Угумс. CLEAR чистит только заголовок таблички


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос новичка
СообщениеДобавлено: Чт, ноя 18 2010, 11:01 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Acid_Firewood написал(а):
Угумс. CLEAR чистит только заголовок таблички

ну почему же... я вот например рефрешем никогда не пользуюсь:
CLEAR: v_kbetr, v_kbetr[]. :wink:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос новичка
СообщениеДобавлено: Чт, ноя 18 2010, 14:58 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, окт 15 2010, 14:06
Сообщения: 292
Ну, можно и так


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

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


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

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


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

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