Текущее время: Пн, июл 28 2025, 08:47

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Динамическое определение полей для select'а. не получается ... :(
СообщениеДобавлено: Чт, июн 21 2007, 07:55 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Сб, янв 27 2007, 08:27
Сообщения: 337
Откуда: СНГ ... ЮГ
Пол: Мужской
Всем доброго времени суток!
дело вот такое, есть задача, ищу простое решение.
за ведомо не известно количество полей которые пойдут в запрос.
нашел вот такой славный и рабочий примерчик в примерах самого сапа.
Code:
DATA: itab TYPE STANDARD TABLE OF spfli,
      wa LIKE LINE OF itab.
DATA: line(72) TYPE c.
line = ' CITYFROM DISTANCE '.  " это то, что я искал.

SELECT  (line)
  INTO CORRESPONDING FIELDS OF TABLE itab
  FROM spfli.

IF sy-subrc EQ 0.
  LOOP AT itab INTO wa.
    WRITE: / wa-cityfrom, wa-DISTANCE.
  ENDLOOP.
ENDIF.


все хорошо только мне нужны суммы полей ... т.е.
Code:
line = ' CITYFROM  SUM( DISTANCE   ) '.



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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 21 2007, 08:34 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Проблемы как минимум две:
- Поля должны находиться во внутренней таблице
- Нужен GROUP BY по неагрегируемому полю.

DATA: line(72) TYPE c.
DATA: lt_fields LIKE TABLE OF line.

line = ' CITYFROM SUM( DISTANCE ) '.

APPEND line TO lt_fields.

SELECT (lt_fields)
INTO CORRESPONDING FIELDS OF TABLE itab
FROM spfli
GROUP BY CITYFROM.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 21 2007, 09:13 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Сб, янв 27 2007, 08:27
Сообщения: 337
Откуда: СНГ ... ЮГ
Пол: Мужской
спасибо vga
но я так уже пробовал как тока появляется ргуппировочное поле так сумма во всех строках равна нулю


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 21 2007, 09:17 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
А потому что не может найти корреспондирующие поля.
Попробуйте не использовать CORRESPONDING FIELDS OF
и подкорректируйте приемную таблицу


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 21 2007, 09:25 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Сб, янв 27 2007, 08:27
Сообщения: 337
Откуда: СНГ ... ЮГ
Пол: Мужской
пробовал тоже, тогда синтаксис начинает ругаться.
требует селект ендселект
или на список ругается незя мол в селекте юзать list. list. list. from list.
странное такое сообщение.
я от чего на форум выкинул вопрос, от того что и запутался на нет. чего тока не пробовал.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 21 2007, 09:39 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
vga написал(а):
...
line = ' CITYFROM SUM( DISTANCE ) '.

...

Возможно это следует записать как

line = ' CITYFROM SUM( DISTANCE ) as DISTANCE '.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 21 2007, 10:00 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Проверил,
И не меняя прошлый пример, как написал sy-uname работает
ИЛИ как я писал, тоже работает. Сверяйте синтаксис

DATA: BEGIN OF itab OCCURS 0,
bukrs TYPE bsak-bukrs,
wrbtr TYPE bsak-wrbtr,
END OF itab,
wa LIKE LINE OF itab.

DATA: line(72) TYPE c.
DATA: lt_fields LIKE TABLE OF line.

line = ' BUKRS SUM( WRBTR )'.

APPEND line TO lt_fields.

SELECT (lt_fields)
INTO TABLE itab
FROM bsak
GROUP BY BUKRS.

IF sy-subrc EQ 0.
LOOP AT itab INTO wa.
WRITE: / wa-BUKRS, wa-WRBTR.
ENDLOOP.
ENDIF.


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

Зарегистрирован:
Сб, янв 27 2007, 08:27
Сообщения: 337
Откуда: СНГ ... ЮГ
Пол: Мужской
Цитата:
Проверил,
И не меняя прошлый пример, как написал sy-uname работает
ИЛИ как я писал, тоже работает. Сверяйте синтаксис


а все равно нулики нулики.
огромное спасибо. пока я нашел временно ерешение
в лист пишу поля и выгружаю во вн. тейбл таких же полей
и уже во вн таблице суммирую то что мне нужно.
НО
ваши варианты обязательно щас протестирую.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 21 2007, 11:27 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Сб, янв 27 2007, 08:27
Сообщения: 337
Откуда: СНГ ... ЮГ
Пол: Мужской
кстати вот так
Code:
dATA: itab TYPE STANDARD TABLE OF spfli,
      wa LIKE LINE OF itab.
DATA: line(72) TYPE c.
line = ' CITYFROM SUM( DISTANCE ) as DISTANCE '.

SELECT  (line)
  INTO CORRESPONDING FIELDS OF TABLE itab
  FROM spfli.

IF sy-subrc EQ 0.
  LOOP AT itab INTO wa.
    WRITE: / wa-cityfrom, wa-DISTANCE.
  ENDLOOP.
ENDIF.

у меня падает в дамп. а так я пробовал с "AS" делать.
вот тока Ваш вариант vga
отработал на ура, чему я был очень сильно рад. :)

Спасибо всем за помощь и внимание!


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

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


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

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


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

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