以下是預訂時發生的所有修改。
我需要為預訂 ID 提取結帳日期比之前日期晚的預訂。比如客人是否更改了預訂以及他們是否提前了退房日期。

輸出: - 只有 2,因為這是結帳日期小于前一個的唯一預訂。

查詢:我嘗試選擇有修改的預訂并分配了等級,但仍然不確定如何比較前一個。你能建議如何在這里進行。
SELECT ReservationID
FROM (
SELECT ReservationID,RANK() OVER(PARTITION BY ReservationID ORDER BY CheckoutDate Desc) rn
FROM RESERVATIONS
WHERE ReservationID IN (
SELECT ReservationID
FROM (
SELECT ReservationID,COUNT(DISTINCT CheckoutDate)
FROM RESERVATIONS
GROUP BY ReservationID
HAVING COUNT(DISTINCT CheckoutDate) >1
)
)
) WHERE rn=1
uj5u.com熱心網友回復:
我認為您可以嘗試以下具有 FIRST_VALUE() 視窗函式的查詢 -
SELECT ReservationID
FROM (SELECT ReservationID,
CheckoutDate,
FIRST_VALUE(CheckoutDate) OVER (PARTITION BY ReservationID
ORDER BY TO_DATE(MonthChanged, 'Mon-YY') DESC) upd_CheckoutDate
FROM RESERVATIONS)
WHERE upd_CheckoutDate < CheckoutDate;
演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/391765.html
