SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Select для vbap, lips, vbrp



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
Anton_bs
Участник
Участник


Age: 44
Joined: 22 Sep 2009
Posts: 30

PostPosted: Thu Aug 05, 2010 12:22 pm    Post subject: Select для vbap, lips, vbrp Reply with quote

Привет всем. Может кто-то объяснить почему select приведенный ниже не выбирает записи если разкоментировать строкус табл. vbrk? т.е. надо получить - есть заказ, поставка, а фактуры нет...
Code:
select *
INTO CORRESPONDING FIELDS OF TABLE lt_vbap
FROM
  VBAP
    INNER JOIN LIPS ON  LIPS~VGPOS = VBAP~POSNR AND LIPS~VGBEL = VBAP~VBELN
    LEFT  JOIN   VBRP ON  VBRP~VGPOS = LIPS~POSNR AND VBRP~VGBEL = LIPS~VBELN
*    inner JOIN VBRK ON  VBRK~VBELN = VBRP~VBELN
    inner JOIN LIKP ON  LIKP~VBELN = LIPS~VBELN
    INNER JOIN VBAK ON  VBAK~VBELN = VBAP~VBELN
WHERE VBAK~AUDAT BETWEEN '20100701' and '20100731'
AND VBAK~AUGRU = '107'.
Back to top
View user's profile Send private message
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Thu Aug 05, 2010 12:52 pm    Post subject: Reply with quote

Потому что VBRP соединяется через LEFT JOIN.

Вообще в целях уменьшения нагрузки на БД и обеспечения корректности выборки данных рекомендую делать такие выборки отдельно:
1.выбрать основную таблицу (в вашем случае VBAK+VBAP).
2.В цикле по найденным записям искать данные воспомогательных таблиц: сначала выбрать записи из LIKP+LIPS, затем на основе выбранных данных из VBRK+VBRP.
3.Соединить полученные записи

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
Anton_bs
Участник
Участник


Age: 44
Joined: 22 Sep 2009
Posts: 30

PostPosted: Thu Aug 05, 2010 2:54 pm    Post subject: Reply with quote

прошу прощения, что сразу тему не раскрыл. этот запос был взят из проги сгенериной в sap query. вот как быть в этом случае, если запос делать через него?
Back to top
View user's profile Send private message
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Mon Aug 09, 2010 10:34 am    Post subject: Reply with quote

Cделать LEFT JOIN через таблицу VBFA, данные VBRK и VBRP вытаскивать в дополнительной кодировке в узле "Обработка записей".
Code:
LEFT OUTER JOIN vbfa ON vbfa~vbelv = lips~vbeln
                  AND vbfa~posnv = lips~posnr
                  AND vbfa~vbtyp_v = 'J'
                  AND vbfa~vbtyp_n = 'M'

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Mon Aug 09, 2010 10:35 am    Post subject: Reply with quote

но с точки зрения улучшения производительности в данном случае лучше отказаться от SAP Query. Wink
_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.