Текущее время: Сб, июл 19 2025, 11:04

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Странность при выборке с for all entries in
СообщениеДобавлено: Чт, сен 21 2006, 11:32 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, ноя 12 2004, 10:44
Сообщения: 370
Откуда: Москва
странно выбирает нижепреведенный селект данные. есть документ с 4 позициями, 2 из которых абсолютно одинаковые, отличаются лишь суммами. в результате селекта выбирается лишь одна из них. выгладит так, будто for all entries ак бы делает select distinct... ;( так ли это?

Code:
refresh tmp_bse.                           
select bukrs belnr gjahr bschl kunnr lifnr 
  from bseg                                 
  into corresponding fields of table tmp_bse
  for all entries in tmp_bkp               
  where                                     
    bukrs = tmp_bkp-bukrs and               
    belnr = tmp_bkp-belnr and               
    gjahr = tmp_bkp-gjahr.                 


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 21 2006, 11:39 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, сен 22 2004, 08:42
Сообщения: 1079
Откуда: Москва
Пол: Мужской
help гласит
Цитата:
With duplicated rows in the resulting set, the addition FOR ALL ENTRIES has the same effect as if addition DISTINCT were specified in the definition of the selection quantity. Unlike DISTINCT, the rows are not deleted from the database system but are deleted on the application server from the resulting set.


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

Зарегистрирован:
Пт, ноя 12 2004, 10:44
Сообщения: 370
Откуда: Москва
Mike1 написал:
help гласит
Цитата:
With duplicated rows in the resulting set, the addition FOR ALL ENTRIES has the same effect as if addition DISTINCT were specified in the definition of the selection quantity. Unlike DISTINCT, the rows are not deleted from the database system but are deleted on the application server from the resulting set.


блин, как неудобно... :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 21 2006, 12:35 
Директор
Директор

Зарегистрирован:
Чт, май 12 2005, 11:10
Сообщения: 1038
Пол: Мужской
holocron написал(а):
Mike1 написал:
help гласит
Цитата:
With duplicated rows in the resulting set, the addition FOR ALL ENTRIES has the same effect as if addition DISTINCT were specified in the definition of the selection quantity. Unlike DISTINCT, the rows are not deleted from the database system but are deleted on the application server from the resulting set.


блин, как неудобно... :(


как вариант - можно определить номера документов как RANGES,(пробежавшись по tmp_bkp) и в селекте писать
не

Code:
...
belnr = tmp_bkp-belnr and
...


а скажем

Code:
...
belnr  IN r_bkp and
...



Чтото в таком духе.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 21 2006, 12:44 
Менеджер
Менеджер

Зарегистрирован:
Вт, дек 06 2005, 17:52
Сообщения: 559
Проще всего сделать так, чтобы выбираемые строки не были одинаковыми. Т.е. в данном случае - включить в выборку, например, поле "позиция документа".

select bukrs belnr BUZEI gjahr bschl kunnr lifnr...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 21 2006, 14:11 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, ноя 12 2004, 10:44
Сообщения: 370
Откуда: Москва
Sergeant написал(а):
Проще всего сделать так, чтобы выбираемые строки не были одинаковыми. Т.е. в данном случае - включить в выборку, например, поле "позиция документа".

select bukrs belnr BUZEI gjahr bschl kunnr lifnr...


да, это более приемлимый вариант! спасибо. кстати, я правильно понимаю, что в данном случае BUZEI во внутренней таблице можно и не делать?

2 Egal: в таком случае документов будет выбрано гораздо больше, чем надо!


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

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
holocron написал(а):
кстати, я правильно понимаю, что в данном случае BUZEI во внутренней таблице можно и не делать?

правильно :)

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 21 2006, 17:51 
Директор
Директор

Зарегистрирован:
Чт, май 12 2005, 11:10
Сообщения: 1038
Пол: Мужской
holocron написал(а):
Sergeant написал(а):
Проще всего сделать так, чтобы выбираемые строки не были одинаковыми. Т.е. в данном случае - включить в выборку, например, поле "позиция документа".

select bukrs belnr BUZEI gjahr bschl kunnr lifnr...


да, это более приемлимый вариант! спасибо. кстати, я правильно понимаю, что в данном случае BUZEI во внутренней таблице можно и не делать?

2 Egal: в таком случае документов будет выбрано гораздо больше, чем надо!


чего вдруг? :shock:


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

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
интересно, будет ли быстрее bsid bsad bsik bsak по очереди
вместо одного bseg


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: re
СообщениеДобавлено: Пт, сен 22 2006, 08:56 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
trop написал(а):
интересно, будет ли быстрее bsid bsad bsik bsak по очереди
вместо одного bseg

Если условия выборки будут попадать в индексы - то да :)
Только не нужно забывать еще и bsis, bsas, bsim и т.п.
В зависимости от того, что нужно ;)

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 22 2006, 10:11 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
от for all enetrys вобще больше головняка чем пользы
не раз приходилось чужие грабли испралять.
1. Она над результатом выборки делает distinct
2. Если вдруг табличка окажется пустой - поля запроса связанные с таблицой выпадают из Select-а

Было ещё что то уже не помню.
Короче лучше не юзать эту хрень.


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

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
DKiyanov написал:
от for all enetrys вобще больше головняка чем пользы
не раз приходилось чужие грабли испралять.
...

Чужие граблей это чужие грабли, а на свои пару раз достаточно наступить чтобы их в дальнейшем не разбрасывать.
Цитата:
Было ещё что то уже не помню.
Короче лучше не юзать эту хрень.

И какую же хрень лучше юзать?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 22 2006, 10:48 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, ноя 12 2004, 10:44
Сообщения: 370
Откуда: Москва
Egal написал:
holocron написал(а):
Sergeant написал(а):
Проще всего сделать так, чтобы выбираемые строки не были одинаковыми. Т.е. в данном случае - включить в выборку, например, поле "позиция документа".

select bukrs belnr BUZEI gjahr bschl kunnr lifnr...


да, это более приемлимый вариант! спасибо. кстати, я правильно понимаю, что в данном случае BUZEI во внутренней таблице можно и не делать?

2 Egal: в таком случае документов будет выбрано гораздо больше, чем надо!


чего вдруг? :shock:


понимаю твой шок, но все же в разные годы номера BELNR могут совпадать.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: re
СообщениеДобавлено: Пт, сен 22 2006, 10:50 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, ноя 12 2004, 10:44
Сообщения: 370
Откуда: Москва
Удав написал(а):
trop написал(а):
интересно, будет ли быстрее bsid bsad bsik bsak по очереди
вместо одного bseg

Если условия выборки будут попадать в индексы - то да :)
Только не нужно забывать еще и bsis, bsas, bsim и т.п.
В зависимости от того, что нужно ;)


хм. да мне надо просто было выбрать все позиции документов, номера которых есть во внутренней табличке (после выборки по BKPF). стоит ли тут переходить на bsid bsad bsik bsak, если я иду по ключу BSEG (кроме BUZEI)?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: re
СообщениеДобавлено: Пт, сен 22 2006, 11:43 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
holocron написал(а):
хм. да мне надо просто было выбрать все позиции документов, номера которых есть во внутренней табличке (после выборки по BKPF). стоит ли тут переходить на bsid bsad bsik bsak, если я иду по ключу BSEG (кроме BUZEI)?


Учитывай, что хоть по ключу из bseg'a выборка будет быстро, а вот доставание полей оттуда - не очень быстро. Кроме того в bseg'е еще лежат данные налоговых позиций, то бишь bsid + bsad будет меньше чем bseg.
Я бы посоветовал сделать вариант с bseg'ом и со вторичными индексами и сравнить.

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


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

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


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

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


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

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