Текущее время: Вт, май 13 2025, 03:42

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


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

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


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

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