Текущее время: Пт, июл 04 2025, 14:55

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Запрос к внутренней таблице
СообщениеДобавлено: Чт, июн 09 2005, 13:10 
Гость
Уважаемые специалисты.
Как нужно описать внутреннюю таблицу, чтобы можно было обратиться к ней при помощи SQL-запроса (если это возможно)?

С уважением, Яровенко Александр


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 09 2005, 14:50 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 01 2004, 07:44
Сообщения: 174
нельзя
можно использовать внутренюю таблицу для запроса к таблицам БД
(конструкция IN ALL ENTRIES)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 09 2005, 14:56 
Менеджер
Менеджер

Зарегистрирован:
Вт, дек 07 2004, 10:39
Сообщения: 610
только FOR ALL ENRIES IN..
ну или LOOP AT itab
и SELECT SINGLE, если нужно что то сложное селектить..

_________________
полный SAPец


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 09 2005, 15:00 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 01 2004, 07:44
Сообщения: 174
slash написал(а):
только FOR ALL ENRIES IN..
ну или LOOP AT itab
и SELECT SINGLE, если нужно что то сложное селектить..


про IN .. мне понравилось :D


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Запрос к внутренней таблице
СообщениеДобавлено: Пт, июн 10 2005, 05:31 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, авг 26 2004, 05:04
Сообщения: 922
Откуда: Челябинск
Пол: Мужской
egochnpp написал(а):
Уважаемые специалисты.
Как нужно описать внутреннюю таблицу, чтобы можно было обратиться к ней при помощи SQL-запроса (если это возможно)?

С уважением, Яровенко Александр


Обращение к нутренней таблице производится при помощи read или loop. И там и там можно делать условия.

Единственное что нужно еще сказать - для хэшированных таблиц возможен доступ только по ключу.

_________________
Все будет хорошо...
http://sap-blog.ru/


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Запрос к внутренней таблице
СообщениеДобавлено: Пт, июн 10 2005, 08:50 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
artyom написал:
Единственное что нужно еще сказать - для хэшированных таблиц возможен доступ только по ключу.


Небольшое уточнение - для хэшированных таблиц невозможен доступ по индексу (номеру строки).


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Запрос к внутренней таблице
СообщениеДобавлено: Пт, июн 10 2005, 10:22 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, авг 26 2004, 05:04
Сообщения: 922
Откуда: Челябинск
Пол: Мужской
EGF написал(а):
artyom написал:
Единственное что нужно еще сказать - для хэшированных таблиц возможен доступ только по ключу.


Небольшое уточнение - для хэшированных таблиц невозможен доступ по индексу (номеру строки).

Совершенно верно - только по ключевым полям иписанным при инициализации.

_________________
Все будет хорошо...
http://sap-blog.ru/


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 10 2005, 11:14 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
В том то и дело, что доступ возможен по любым полям. Правда, он будет не такой быстрый, как по полному ключу, но он вполне себе возможен.
Code:
DATA:
  gt_mara TYPE HASHED TABLE OF mara WITH UNIQUE KEY matnr,
  gs_mara TYPE mara
.
SELECT-OPTIONS:
  go_matnr FOR gs_mara-matnr.

SELECT *
  INTO TABLE gt_mara
  FROM mara
  WHERE matnr IN go_matnr.
CHECK sy-subrc = 0.

READ TABLE gt_mara TRANSPORTING NO FIELDS WITH KEY mtart = 'ROH'.
WRITE sy-subrc.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: ///  Тема решена
СообщениеДобавлено: Пт, июн 10 2005, 11:31 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, авг 26 2004, 05:04
Сообщения: 922
Откуда: Челябинск
Пол: Мужской
Ага, косяк за мной. Всегда почему-то считал что только по ключу :oops:

_________________
Все будет хорошо...
http://sap-blog.ru/


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 09 2006, 11:48 
Ассистент
Ассистент

Зарегистрирован:
Вт, апр 18 2006, 15:27
Сообщения: 32
А если надо сделать динамическое условие? То есть, допустим, мы узнаем, какие поля в таблице только в рантайме...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 09 2006, 12:07 
Гуру-модератор
Гуру-модератор

Зарегистрирован:
Чт, окт 20 2005, 08:45
Сообщения: 1651
Пол: Мужской
ну например так:
cond = 'условие1 and условие2...'.
SELECT * FROM table1 WHERE (cond).


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 09 2006, 12:54 
Ассистент
Ассистент

Зарегистрирован:
Вт, апр 18 2006, 15:27
Сообщения: 32
Спасибо, но это не пойдет, так как к внутренним таблицам по select достучаться нельзя.

Надо как-то по-другому.
Причем есть отличный вариант:
READ TABLE itab WITH KEY ('ключ 1') = 'что-нибудь' ('ключ2') = 'что-то еще' ....
Только есть проблема - я знаю сколько полей потребуется только в рантайме.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 09 2006, 13:31 
Гуру-модератор
Гуру-модератор

Зарегистрирован:
Чт, окт 20 2005, 08:45
Сообщения: 1651
Пол: Мужской
Да к внутренним конечно через селект не обратиться,я-то подумал к базе:).....к внутренним наверное никак....


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 09 2006, 14:23 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, апр 17 2006, 11:03
Сообщения: 123
Есть вариант
создавать include, генерировать в нем в run-time нужную конструкцию с READ TABLE..., сохранять, вызывать где нужно


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 09 2006, 14:32 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
author написал(а):
Есть вариант
создавать include, генерировать в нем в run-time нужную конструкцию с READ TABLE..., сохранять, вызывать где нужно


вы из ружья за тараканами не пробовали охотиться? :lol:

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.

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


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

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


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

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