Posted: Fri Apr 11, 2008 12:37 pm Post subject: Проблема с SELECT
Доброе время суток. Я еще новичок, поэтому не судите строго, если вопрос глупый. Помогите разобраться с кодом.
У меня существует таблица 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.
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 удалены
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.