2017-05-31 46 views
-1

我有一個臨時表,其中大約有2000個合同代碼。每份合約每月分期付款1筆,但上個月產生的是分期付款記錄。 我需要爲每個在一個月內生成兩期分期付款的合約選擇最後兩條記錄。 例如:選擇哪個顯示每個合同的最後創建記錄的最後2個

Select * from TABLE_XY 
where code = '112233' and rownum <= 2 
order by creation_date desc; 

這個選擇顯示了我需要的只是一個代碼。

我有臨時表(將其命名爲temporary_table),我已經存儲了所有合同。 我不知道如果我解釋得好:)如果你需要更多的ino請讓我知道 謝謝

回答

0

我不知道我是否明白你想要做什麼。如果你需要提取相關的合約代碼,存儲在臨時表可以做一個JOIN或把選擇的代碼中的

Select * from TABLE_XY where code in 
(select code from temporary_table where id_contract = ?¿) and rownum <= 2 order by creation_date desc; 
0

的這應有助於

select * from (
    select 
    t.*, 
    count(code) over (partition by code, to_char(creation_date, 'YYYY-MM')) as cnt, 
    to_char(creation_date, 'YYYY-MM') as creation_month, 
    row_number() over (partition by code, to_char(creation_date, 'YYYY-MM') order by creation_date desc) as rnum 
    from table_xy t 
) 
where cnt > 1 and rnum < 3 
0

你可以嘗試給行號代碼上個月的訂單重複的代碼。

select * from 
(Select a.*,row_number() over(partition by code order by creation_date desc) rn from TABLE_XY a) 
where rn <= 2; 
相關問題