我有這些表加盟條件:通過日期時間
讓步
Shipment_id,標題,Creation_datetime
1, A, 2017-09-13
只選擇最後一個記錄,每一讓步有一個以上的SCAN
SCANS
Shipment_ID, Event_code, TSS_creation_date
1, 200, 2017-09-10
1, 400, 2017-09-11
1, 600, 2017-09-12
1, 800, 2017-09-15
1, 900, 2017-09-16
在我最後的結果我想
結果(特許)
Shipment_ID,Title, Creation_datetime, LAST_SCAN_AT_CREATION_DATE
1, A, 2017-09-13, 600
在那裏我得到了event_code=600
因爲這是最後一排有creation_date <= concession_creation_date
我有這個嘗試查詢,但實際上效率低下,而且速度太慢,導致無法獲得結果。你知道如何使用Join嗎?
WITH
ShipmentAndScans AS (
SELECT
conc.shipment_id,
(
SELECT
scan.event_code
FROM SCANS_TABLE scan
WHERE
scan.shipment_id = conc.shipment_id
AND scan.TSS_CREATION_DATE <= conc.CREATION_DATETIME
AND ROWNUM <=1
) AS LAST_SCAN_AT_CONCESSION_TIME
FROM CONCESSIONS conc
)
SELECT *
FROM ShipmentAndScans
WHERE LAST_SCAN_AT_CONCESSION_TIME IS NOT NULL
似乎有效。你知道我怎樣才能得到最後的紀錄(最近的)? – Leo