3

正常に機能しているように見えるクエリがありますが、よりクリーンな(またはより適切な)記述方法があるかどうか疑問に思っています。

目標は、指定されたユーザーIDに基づいて、日付(UPDPASS)と時刻(UPDPASSTIME)が最大であるテーブルZVBAPIUSW01のレコードを見つけることです。

これが私がこれまでに得たものです:

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 に答える