【问题标题】:What is the most accurate/efficient method to retrieve recently entered text without changing ROWNUM?在不更改 ROWNUM 的情况下检索最近输入的文本的最准确/有效的方法是什么?
【发布时间】:2016-04-19 20:28:22
【问题描述】:

请多多包涵,因为我是新手。我得到了对先前查询的回答,这真的很有帮助。 现在我正在尝试完成项目的另一个步骤。

我的查询是,我有一个表,我正在尝试检索针对订单的特定行输入的最新注释。 下面是表格的示例。

下表中的数据是通过连接两个单独的表获得的。

我使用了以下语法,并且能够获取针对示例订单输入的最新注释 (867318) 但是现在,在订单有多行 (ORDER_LINE) 的情况下,如何检索针对 ORDER_LINE 输入的最新 NOTE_PAD.TEXT?

任何帮助将不胜感激。

SQL 品牌: Oracle DB pre 12c
日期格式: 是真实日期/时间
问题: 最准确/根据 ORDER_NUMBER 检索最近输入的 NOTE_PAD.TEXT 而不每次更改 ROWNUM 的有效方法

SQL 语法:

 SELECT *
  FROM ( SELECT ORDER_TYPE,
                ORDER_NUMBER,
                ORDER_LINE,
                NOTE_PAD.CREATED_DATE,
                NOTE_PAD.TEXT
                           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

使用上述语法时的表结果示例:

2:http://i.stack.imgur.com/e02YS.png
所以基本上这就是整个代码在数据库中的样子:
我需要根据特定类型的订单及其状态检索注释。
因此
ORDER_TYPE = ‘RO’
ORDER_STATUS = ‘OPEN’

【问题讨论】:

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


【解决方案1】:

如果您想同时处理多个订单,请使用row_number()

SELECT *
FROM (SELECT ORDER_TYPE, np, ORDER_LINE,
             np.CREATED_DATE, NOTE_PAD.TEXT,
             ROW_NUMBER() OVER (PARTITION BY o.ORDER_NUMBER
                                ORDER BY NP.CREATED_DATE DESC
                               ) as seqnum
      FROM ORDER_AWB o INNER JOIN
           NOTE_PAD np
           ON o."NOTES" = np."NOTES" 
     ) o
WHERE SEQNUM = 1;

【讨论】:

  • 您的 Oracle 版本是多少? SELECT * FROM V$VERSION 如果你不知道。
  • 感谢指针,我运行了你给我的脚本,这就是出现的结果
    Oracle 数据库 11g 企业版版本 11.2.0.3.0 - 64 位生产
    PL/ SQL 版本 11.2.0.3.0 - 生产
  • @joshmc 。 . . Oracle 11g 支持partition by。现在我已经在上一行的末尾添加了一个逗号,它可能会起作用。
  • @joshmc 。 . .您的代码在 row_number() 之前缺少一个逗号。
  • 这些是在这些组合上吐出的结果,请参阅链接。 i.stack.imgur.com/sJsIY.png
猜你喜欢
  • 1970-01-01
  • 2017-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-05
  • 1970-01-01
相关资源
最近更新 更多