检索最新的行 - Oracle 12c之前

时间:2016-01-13 13:15:36

标签: sql oracle greatest-n-per-group

请耐心等待,因为我对这一切都不熟悉。

我的查询是,我有下表,我正在尝试根据订单检索最新的NOTE_PAD.NOTE_TEXT。 表格的示例如下所示。

下表中的数据是通过连接两个单独的表获得的。 我已使用以下语法进行连接,并仅检索此示例的特定订单号(867318),因为数据库中有许多订单。

不确定我是否已经说得足够清楚,但如果不能让我知道是否需要任何具体信息,我会尽力提供。 如上所述,请耐心等待我,因为我对此totally

全新

SQL语法:

SELECT ORDER_TYPE,
       ORDER_NUMBER,
       ORDER_LINE,
       NOTE_PAD.CREATED_DATE
  FROM ORDER_AWB INNER JOIN
       NOTE_PAD
       ON ( "ORDER_AWB"."NOTES" = "NOTE_PAD"."NOTES" )
WHERE ( "ORDER_AWB"."ORDER_NUMBER" = '867318' )

使用上述语法时的表结果示例: enter image description here

2 个答案:

答案 0 :(得分:0)

从快速谷歌看起来它就像使用Oracle的TRAX软件。如果它是版本12c(12.1)或更高版本,并且您只想一次查询一个订单,那么将其置于查询的 end 应该可以正常工作

ORDER BY NOTE_PAD.CREATED_DATE DESC
FETCH NEXT 1 ROWS ONLY;

答案 1 :(得分:0)

对于Oracle DB pre 12c,这应该可以正常工作

SELECT * FROM
  (
  SELECT ORDER_TYPE,
         ORDER_NUMBER,
         ORDER_LINE,
         NOTE_PAD.CREATED_DATE
  FROM ORDER_AWB INNER JOIN
         NOTE_PAD ON ( "ORDER_AWB"."NOTES" = "NOTE_PAD"."NOTES" )
  WHERE ( "ORDER_AWB"."ORDER_NUMBER" = '867318' )
  ORDER BY NOTE_PAD.CREATED_DATE DESC
  )
WHERE ROWNUM <= 1