Текущее время: Пн, июл 07 2025, 16:58

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


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

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


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

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