簡體   English   中英

Oracle SQL 查詢獲取最大值日期

[英]Oracle SQL Query Get Value at Max Date

數據:

| ORIGL_ORDER | ORDER | ITEM | DATE        | WHSE | QTY |
| ----------- | ----- | ---- | ----------  | ---- | --- |
| 001         | 107   | 9    | 12/29/2020  | 7    | 6   |
| 001         | 110   | 9    | 12/30/2020  | 1    | 4   |
| 001         | 113   | 9    | 12/30/2020  | 3    | 2   |
| 007         | 211   | 3    | 12/20/2020  | 6    | 1   |
| 007         | 219   | 3    | 12/19/2020  | 5    | 3   | 
| 018         | 390   | 8    | 12/25/2020  | 2    | 1   |

原始期望結果:

| ORIGL_ORDER | ORDER | ITEM | MAX_DATE    | WHSE |
| ----------- | ----- | ---- | ----------  | ---- |
| 001         | 113   | 9    | 12/30/2020  | 3    |
| 007         | 211   | 3    | 12/20/2020  | 6    |
| 018         | 390   | 8    | 12/25/2020  | 2    |

原始問題:對於每個 ORIGL_ORDER 和 ITEM,我想獲取 max(DATE) 和與 max(Date) 對應的 WHSE。 如果有多個訂單具有相同的 max(DATE),則 select 是最大的訂單號。

新的期望結果:

| ORIGL_ORDER | ORDER | ITEM | MAX_DATE    | WHSE | TOTAL_QTY |
| ----------- | ----- | ---- | ----------  | ---- | --------- |
| 001         | 113   | 9    | 12/30/2020  | 3    | 12        |
| 007         | 211   | 3    | 12/20/2020  | 6    | 4         |
| 018         | 390   | 8    | 12/25/2020  | 2    | 1         |

這回答了問題的原始版本。

只需使用row_number()

select t.*
from (select t.*,
             row_number() over (partition by ORIGL_ORDER, item order by date desc, order_number desc) as seqnum
      from t
     ) t
where seqnum = 1;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM