この構文のみを使用するように制限されているとしましょう(MAXやMINなどの集計関数は使用できません。また、GROUP BY句も使用できません。理由を聞かないでください)。
{SQL query} ::= SELECT [DISTINCT | ALL] [TOP {integer}]
{select_list}
FROM {table_reference}
[WHERE {search_condition}]
[ORDER BY {orderby} { ',' {orderby} } ]
識別子がITEM_IDと呼ばれるITEMテーブルがあるとしましょう。特定のITEM_IDに対して、同じITEM_IDであるが、SHIP_DATEが異なる多くの行を持つことができます。前の構文で最新のSHIP_DATEを持つITEMSのみを返すクエリをどのように記述しますか?
TOP N(結果セットの最初の行を取得するため)とORDER BY(最大SHIP_DATEから最小SHIP_DATEまでソートするため)を組み合わせて使用してみました。何かアイデアや提案はありますか?
私が試したのは次のようなものです。
SELECT TOP N * FROM ITEM WHERE ITEM_ID='X' ORDER BY SHIP_DATE DESC
実際、前のクエリは機能しているようですが、もっと良い方法があるかどうか疑問に思っています。
これは宿題ではありません。サポートされているFileNetP8構文を使用してクエリを作成する必要があります:http://publib.boulder.ibm.com/infocenter/p8docs/v4r5m1/index.jsp ?topic = / com.ibm.p8.doc /developer_help/content_engine_api/guide/query_sql_syntax_ref.htm