我有一个查询似乎工作正常,但我想知道是否有更清洁(或更合适)的方式来写它。如何优化ABAP查询
目标是根据给定的用户标识查找表ZVBAPIUSW01中的记录,其中日期(UPDPASS)和时间(UPDPASSTIME)是最大的。
这是我到目前为止有:
SELECT SINGLE * FROM ZVBAPIUSW01
WHERE OBJID = ID
AND UPDPASS IN (
SELECT MAX(UPDPASS) FROM ZVBAPIUSW01 WHERE OBJID = ID)
AND UPDPASSTIME IN (
SELECT MAX(UPDPASSTIME) FROM ZVBAPIUSW01 WHERE OBJID = ID AND UPDPASS IN (
SELECT MAX(UPDPASS) FROM ZVBAPIUSW01 WHERE OBJID = ID)).
感谢您的帮助。 迈克
谢谢。这是一种简单(明显)的方式来获得我正在寻找的东西。我将使用SELECT SINGLE *切换SELECT foo bar baz,因为我想要所有字段,并且在ABAP中,single关键字只给出结果集中的第一条记录。 –
对不起,你不能使用SELECT SINGLE和ORDER BY,你应该使用vwegert语法。 – franblay
您是正确的franblay,SINGLE和ORDER BY不能一起使用。我将不得不寻找另一种方式。但是,这可以在其他地方使用,或者只是查看第一个返回的记录,所以我会接受这个答案。 –