我有一个看起来工作正常的查询,但我想知道是否有更干净(或更合适)的方式来编写它。
目标是在表 ZVBAPIUSW01 中根据给定的用户 ID 查找日期 (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 foo bar baz
FROM ZVBAPIUSW01 UP TO 1 ROWS
INTO (l_foo, l_bar, l_baz)
WHERE OBJID = ID
ORDER BY updpass DESCENDING updpasstime DESCENDING.
关于sql - 如何优化ABAP查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13425575/