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

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


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

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


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

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