Текущее время: Чт, июл 24 2025, 06:39

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


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

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


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

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