3

我有一个查询似乎工作正常,但我想知道是否有更简洁(或更合适)的方式来编写它。

目标是在表 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 ) ).

谢谢你的帮助。麦克风

4

2 回答 2

8

你可以试试

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.
于 2012-11-17T09:33:06.673 回答
1

不要使用 Select * 而是使用 Select(必填列表)

于 2012-11-16T23:03:33.370 回答