假設您僅限於使用此語法(不能使用MAX或MIN等聚合函數,也不能使用GROUP BY子句;請勿「不問我爲什麼):運行沒有GROUP BY和聚合函數的查詢
{SQL query} ::= SELECT [DISTINCT | ALL] [TOP {integer}]
{select_list}
FROM {table_reference}
[WHERE {search_condition}]
[ORDER BY {orderby} { ',' {orderby} } ]
假設我們有一個ITEM表,其中標識符被稱爲ITEM_ID。對於給定的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
其實前面的查詢似乎是工作,但我不知道是否有更好的方式來做到這一點。
這不是功課,我需要使用支持FileNet P8的語法創建一個查詢: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
「它不起作用」不起作用。請更確切地說明你所嘗試的是什麼,你的期望以及你得到了什麼。 – 2009-10-21 00:11:30
謝謝,我再澄清一點。 – 2009-10-21 00:23:36
更正,它應該是TOP N而不是TOP 1 – 2009-10-21 02:09:20