在etl過程中,經常會碰到取結果集的最後或最前一條記錄。如取活期存款的當前利率,開戶金額,協定利率等。如果不用lookup的方式,如通過游標取或者etl工具lookup元件什麼的,在一條sql裡實現,目前實現有幾種方法。
1.以時間或其他字段分組後在自連自己,這樣不僅可以帶出需要lookup的字段,還可以帶出其他需要的字段。
select a.cddpty cddpty,a.cdcurr cdcurr,a.cdvldt cdvldt,
a.cdyrat cdyrat
from dcppdata.tbbfmcdrt a inner join
(select b.cddpty,b.cdcurr,max(b.cdvldt) cdvldt
from dcppdata.tbbfmcdrt b
group by b.cddpty, b.cdcurr) c
on a.cddpty =c.cddpty
and a.cdcurr =c.cdcurr
and a.cdvldt =c.cdvldt
2.用row_number() over(order by filedname)
select b.cddpty,b.cdcurr,
row_number() over(order by b.cdvldt desc)
from dcppdata.tbbfmcdrt b
where rownum = 1
ORACLE中SQL取最後一條記錄的幾種方法
在etl過程中,經常會碰到取結果集的最後或最前一條記錄。如取活期存款的當前利率,開戶金額,協定利率等。如果不用lookup的方式,如通過游標取或者etl工具lookup元件什麼的,在一條sql裡實現,目前實現有幾種方法。1.以時間或其他字段分組後在自連自己,這樣不僅可以帶出需要lookup的字段,還...
取最後一條插入的資料
a2 hl x 10 09 14 排序後取最後一條啊 a2 hl x 10 09 39 你的id是遞增的還是隨機 a1 10 10 08 遞增a2 hl x 10 09 14 排序後取最後一條啊 a2 hl x 10 10 30 那就select max id from table a3 xx 10...
sql 取最新一條記錄
1.選出某個條件最新的一條記錄 選出最新狀態下的每乙個單號對應的子單資料 select distinct a.receiving code,a.product barcode,a.rd putaway qty from odoo ykd oversea shipping information a ...