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
Hetfield
Участник
Участник



Joined: 11 Apr 2008
Posts: 0
Location: Одесса

PostPosted: Fri Apr 11, 2008 12:37 pm    Post subject: Проблема с SELECT Reply with quote

Доброе время суток. Я еще новичок, поэтому не судите строго, если вопрос глупый. Помогите разобраться с кодом.

У меня существует таблица CARD с полями ID и DATE в которую записывается дата и id напечатанных карточек. Собстна мне нужно выбрать все карточки печатающиеся в заданном интервале времени, но если какая-то карточка печаталась несколько раз в этом промежутке, выбрать ту, дата у которой больше (печаталась позднее)


SELECT-OPTIONS: DATE FOR ZAM_CARD-DATE_BLANK.
....
SELECT ID
INTO ID_LIST-ID
FROM CARD
WHERE DATE_BLANK IN DATE.
append ID_LIST.

ENDSELECT.
loop at ID_LIST.
SELECT max( DATE_BLANK )
INTO card-DATE_BLANK
FROM CARD
WHERE ID_CARD = ID_LIST-ID_CARD AND DATE_BLANK IN DATE.


append card.
endloop.
Back to top
View user's profile Send private message
Николай
Участник
Участник



Joined: 15 Jan 2008
Posts: 6

PostPosted: Tue Apr 15, 2008 3:39 pm    Post subject: Reply with quote

попробуй так

Code:
Select max( id ) date into :your_table
from  CARD
where date between :date1 and :date2
group by id.


:your_table - твоя внутренняя таблица
:date1 и :date2 - диапозоны выборки
Back to top
View user's profile Send private message
Armann
Модератор
Модератор



Joined: 01 Jan 2008
Posts: 422
Location: Moscow

PostPosted: Tue Apr 15, 2008 3:59 pm    Post subject: Reply with quote

По поводу вот это кусочка кода:
Code:

SELECT ID
INTO ID_LIST-ID
FROM CARD
WHERE DATE_BLANK IN DATE.
append ID_LIST.

ENDSELECT.

настоятельно рекомендуется запустить транзакцию SE30 и посмотреть там советы по оптимизации

по поводу основного вопроса, то можно сделать так:
1. выбираете во внутреннюю табличку нужные данные из вашей таблицы (с ограничением по датам). В этой внутренней табличке как минимум должны быть поля ID и DATE
2. Сортируете, примерно так: sort your_table by id date descending. Смысл сортировки - чтобы записи с одинаковыми ID и разными датами располагались рядом, причем были отсортированы от более поздней дате к более ранней
3. Выполняете команду:
DELETE ADJACENT DUPLICATES FROM your_table COMPARING ID.
Эта команда удаляет дубликаты записей, в данном случае сравнивая их по ID. Первая найденная запись будет оставлена (в нашем случае с более поздней датой), все следующие с таким же ID удалены

Вот, примерно так...
Back to top
View user's profile Send private message Blog
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.