Текущее время: Пт, апр 19 2024, 00:06

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Union
СообщениеДобавлено: Пт, окт 08 2004, 10:04 
Специалист
Специалист

Зарегистрирован:
Ср, авг 18 2004, 08:10
Сообщения: 238
Как на абапе можно реализовать объединение двух селектов, что-нибудь типа union?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 08 2004, 10:18 
Гость
1. посмотри help для JOIN
2. допустим синтаксис:
select * from makt where matnr = ( select single from mara where ... )


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: Union
СообщениеДобавлено: Пт, окт 08 2004, 10:42 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Trezeguet написал(а):
Как на абапе можно реализовать объединение двух селектов, что-нибудь типа union?

SELECT ... INTO TABLE itab.
SELECT ... APPENDING TABLE itab.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 08 2004, 10:52 
Специалист
Специалист

Зарегистрирован:
Ср, авг 18 2004, 08:10
Сообщения: 238
ВН написал(а):
1. посмотри help для JOIN
2. допустим синтаксис:
select * from makt where matnr = ( select single from mara where ... )

1. а как это можно реализовать с помощью join? мне нужно объединить селект(содержимое) двух таблиц с одной структурой, а не связать по определенному полю
2.этот пример для чего? нужен не сложный запрос, а объединение (типа union)

sy-uname написал(а):
Trezeguet написал(а):
Как на абапе можно реализовать объединение двух селектов, что-нибудь типа union?

SELECT ... INTO TABLE itab.
SELECT ... APPENDING TABLE itab.

Про внутреннюю таблицу это понятно. А вот именно без внутренней таблицы.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 08 2004, 10:59 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Trezeguet написал(а):
Про внутреннюю таблицу это понятно. А вот именно без внутренней таблицы.


Нда - и где же ты собираешься хранить считанные данные, если не хочешь использовать внутр.таблицу :?:


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 08 2004, 11:10 
Специалист
Специалист

Зарегистрирован:
Ср, авг 18 2004, 08:10
Сообщения: 238
OlegDm написал(а):
Trezeguet написал(а):
Про внутреннюю таблицу это понятно. А вот именно без внутренней таблицы.


Нда - и где же ты собираешься хранить считанные данные, если не хочешь использовать внутр.таблицу :?:


А где ты хранишь данные когда используешь конструкцию
select * endselect. ?
В конечном счете информация конечно попадет во внутренню таблицу. Мне интерсно, есть ли какая-нибудь конструкция типа UNION. Т.е можно ли объединить в один запрос и соответственно в один цикл две команды типа select..endselect(по двум таблицам со схожей структурой).
Это можно сделать через append внутренней таблицы.Вопрос в том есть ли какие-нибудь другие "красивые" решения?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 08 2004, 11:58 
Гость
select *
...
endselect

вообще не рекомендую использовать эту конструкцию,
т.к. необходимо минимизировать количество запросов к БД

и, на мой взгляд, лучше сразу перенести данные во
внутреннюю таблицу одним запросом (при возможности)
и обрабатывать ее


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 08 2004, 12:20 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Trezeguet написал(а):
Вопрос в том есть ли какие-нибудь другие "красивые" решения?


Где хранятся данные select - endselect, попробуй забыть объявить соответствующий tables тогда сразу станет ясно :wink:
А по поводу красивых решений, ВН прав, это все-таки система клиент-сервер, и запросы по возможности надо оптимизировать и стараться проглотить во внутреннюю таблицу максимум информации за один раз.
Т.е. использовать select ... into table, а затем, если тебе нужно добавить в уже созданную select ... appending table.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 08 2004, 12:27 
Специалист
Специалист

Зарегистрирован:
Ср, авг 18 2004, 08:10
Сообщения: 238
OlegDm написал(а):
Trezeguet написал(а):
Вопрос в том есть ли какие-нибудь другие "красивые" решения?


Где хранятся данные select - endselect, попробуй забыть объявить соответствующий tables тогда сразу станет ясно :wink:
А по поводу красивых решений, ВН прав, это все-таки система клиент-сервер, и запросы по возможности надо оптимизировать и стараться проглотить во внутреннюю таблицу максимум информации за один раз.
Т.е. использовать select ... into table, а затем, если тебе нужно добавить в уже созданную select ... appending table.

Ну дык я и хочу все выбрать ОДНИМ(!) селектом. В этом и вопрос. По аналогии с UNION(!). И в одном селекте заполнить внутреннюю таблицу. Если этого сделать нельзя - вопрос снят.

OlegDm написал(а):
Т.е. использовать select ... into table, а затем, если тебе нужно добавить в уже созданную select ... appending table.


Ты же как раз предлагаешь делать ДВА селекта, а не один.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 08 2004, 12:42 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, авг 18 2004, 09:17
Сообщения: 477
Откуда: Москва
Пол: Мужской
Trezeguet написал(а):
OlegDm написал(а):
Т.е. использовать select ... into table, а затем, если тебе нужно добавить в уже созданную select ... appending table.


Ты же как раз предлагаешь делать ДВА селекта, а не один.


Имхо, вариант с двумя селектам как раз то, что нужно.
Ну, напиши на native sql один запрос с union. Кто мешает?
Выйгрыш в производительности будет 0. Зачем это надо?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 11 2004, 05:26 
Специалист
Специалист

Зарегистрирован:
Ср, авг 18 2004, 08:10
Сообщения: 238
Дмитрий написал:
Trezeguet написал(а):
OlegDm написал(а):
Т.е. использовать select ... into table, а затем, если тебе нужно добавить в уже созданную select ... appending table.


Ты же как раз предлагаешь делать ДВА селекта, а не один.


Имхо, вариант с двумя селектам как раз то, что нужно.
Ну, напиши на native sql один запрос с union. Кто мешает?
Выйгрыш в производительности будет 0. Зачем это надо?


В вопросе речь не шла о производительности, только о наличии команды типа union. Если заменой последней является вариант с двумя селектами и appending и других вариантов нет, то вопрос снят.


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

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


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

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


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

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