Текущее время: Сб, июн 28 2025, 19:07

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Тест на знание ABAP !!!
СообщениеДобавлено: Чт, дек 09 2004, 16:42 
Специалист
Специалист

Зарегистрирован:
Пн, окт 18 2004, 11:25
Сообщения: 183
Откуда: Moscow
есть конструкция:

select bukrs
into corresponding fields of table t_tab
from bsis
for all entries in t_hkont
where ( bukrs = p_bukrs )
and ( hkont = t_hkont-hkont ).

вопрос: сколько записей будет в t_tab ?
(t_hkont не пустой, bsis не пустой для p_bukrs)


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

Зарегистрирован:
Ср, авг 18 2004, 09:17
Сообщения: 477
Откуда: Москва
Пол: Мужской
Дурацкий селект. Ответ: "много".
Конкретно сколько - завивсит от содержимого bsis и t_hkont.
Напиши distinct bukrs, тогда будет 1.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 09 2004, 17:09 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
век живи, век учись.. :oops:

_________________
С уважением, Сергей Королев


Последний раз редактировалось Сергей Королев Чт, дек 09 2004, 17:25, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тест на знание ABAP !!!
СообщениеДобавлено: Чт, дек 09 2004, 17:13 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Сергей Т. написал(а):
есть конструкция:

вопрос: сколько записей будет в t_tab ?
(t_hkont не пустой, bsis не пустой для p_bukrs)


Одна запись.
При применении конструкции FOR ALL ENTRIES дубликаты убираются из результирующего массива.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 09 2004, 17:23 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
И правда.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 09 2004, 17:23 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 08:10
Сообщения: 1024
Одна запись будет. :wink:

_________________
- Ничего не поделаешь, - возразил Кот. - Все мы здесь не в своем уме - и ты, и я!
- Откуда вы знаете, что я не в своем уме? - спросила Алиса.
- Конечно, не в своем, - ответил Кот. - Иначе как бы ты здесь оказалась? :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тест на знание ABAP !!!
СообщениеДобавлено: Чт, дек 09 2004, 17:34 
Специалист
Специалист

Зарегистрирован:
Пн, окт 18 2004, 11:25
Сообщения: 183
Откуда: Moscow
[/quote]

Одна запись.
При применении конструкции FOR ALL ENTRIES дубликаты убираются из результирующего массива.[/quote]

у удивлением обнаружил сей факт сегодня !
вывод: результат for all entries зависит от списка полей после select.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тест на знание ABAP !!!
СообщениеДобавлено: Чт, дек 09 2004, 17:40 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Сергей Т. написал(а):
у удивлением обнаружил сей факт сегодня !
вывод: результат for all entries зависит от списка полей после select.


Ну... так-то об этом в хелпе написано :-).
Но сам на грабли тоже наступал (когда записи "терялись", из-за маленького списка полей).
===========================
The whole logical expression sql_cond is evaluated for each individual line of the internal table itab. The resulting set of the SELECT statement is the union of the resulting sets from the individual evaluations. Duplicate lines are automatically removed from the resulting set. If the internal table itab is empty, the whole WHERE statement is ignored and all lines in the database are put in the resulting set.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 09 2004, 17:45 
Специалист
Специалист

Зарегистрирован:
Пн, окт 18 2004, 11:25
Сообщения: 183
Откуда: Moscow
дак написано, но не выделенно жирным шрифтом ;))
и такое поведение нетипично для обычного sql.
будем надеяться, что это последний "сюрприз" от for all entries !


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 10 2004, 08:38 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
Подобная конструкция трактуется как UNION - отсюда удаление дубликатов и FULL SCAN при пустом значении...
Мы тут на такие грабли наступали-наступали, а потом наконец поняли, откуда ноги растут. :lol:

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


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

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


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

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


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

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