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



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
cbw07
Старший специалист
Старший специалист



Joined: 30 Nov 2007
Posts: 127

PostPosted: Wed Apr 02, 2008 6:50 pm    Post subject: Нужен совет по SELECT Reply with quote

Вот такая проблемка...
Надо выбрать данные из таблицы MBEWH.
Там есть такие поля - LFGJA (год) и LFMON (месяц).

Если я делаю вот так:

Code:
SELECT-OPTIONS:
...
  sl_lfmon FOR mbewh-lfmon,
  sl_lfgja FOR mbewh-lfgja.


то в некоторых случаях получается полная ерунда
Напр., я хочу сделать выборку с 04.2006 до 02.2007. Как мне ее правильно сделать никак не пойму.
Если б в MBEWH период задавался датой (одним полем), то разумеется в SELECT я бы написал что-то вроде
Code:
SELECT...
WHERE дата-из-табл IN sl_date.

А нынешний мой вариант с
Code:
                WHERE mbewh~lfmon IN sl_lfmon
                  AND mbewh~lfgja IN sl_lfgja

не катит...

Может кто-то с такой проблемой уже сталкивался?
Back to top
View user's profile Send private message
Lord
Профессионал
Профессионал



Joined: 10 Sep 2007
Posts: 168

PostPosted: Wed Apr 02, 2008 8:44 pm    Post subject: Reply with quote

Решений может быть несколько:
1) Скачать полностью два года, затем удалить лишние строки из внутренней таблицы
2) Формировать условие WHERE динамической таблицей вида
line = '(lfgja = 2006 AND ( lfmon = 04 OR lfmon = 05 OR ... OR lfmon = 12 ) OR (lfgja = 2007 AND ( lfmon = 01 OR lfmon = 02 )'

SELECT ...
WHERE (line)

Нужно заменить
Quote:
SELECT-OPTIONS:
...
sl_lfmon FOR mbewh-lfmon,
sl_lfgja FOR mbewh-lfgja.


на элемент данных от МЕС-ГОД до МЕС-ГОД
Back to top
View user's profile Send private message
cbw07
Старший специалист
Старший специалист



Joined: 30 Nov 2007
Posts: 127

PostPosted: Thu Apr 03, 2008 11:38 am    Post subject: Reply with quote

спасибо, так и предпологал... Просто думал, есть еще какой-то другой вариант.

Сделал PARAMETERS p_jahr и p_monat вместо SELECT-OPTIONS.
А не подскажите, как правильно в событии
Code:
AT SELECTION-SCREEN ON p_jahr

сделать проверку, что p_jahr не пустое поле или напр. 2050?
Back to top
View user's profile Send private message
Lord
Профессионал
Профессионал



Joined: 10 Sep 2007
Posts: 168

PostPosted: Thu Apr 03, 2008 12:15 pm    Post subject: Reply with quote

cbw07 wrote:
Сделал PARAMETERS p_jahr и p_monat вместо SELECT-OPTIONS.


Есть элемент данных, объединяющий месяц и год.

cbw07 wrote:

А не подскажите, как правильно в событии
Code:
AT SELECTION-SCREEN ON p_jahr

сделать проверку, что p_jahr не пустое поле или напр. 2050?


Просто:
Code:
AT SELECTION-SCREEN ON p_jahr.
IF p_jahr IS INITIAL OR p_jahr NE '2050'.
   MESSAGE E000(xxx).
ENDIF.


Сообщения типа E переместит курсор на поле p_jahr.
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.