求请教:ORACLE 按日期求最后一次销价,日期字段是VARCHAR

**TABLE A **
DJBH SPID JG
1001 001 3.00
1001 002 4.00
1002 001 5.50
1002 002 6.50
TABLEB

DJBH RQ
1001 2022-01-02
1002 2022-01-06

求最后一后销售价
SPID JG RQ

SELECT SPID, JG ,RQ FROM 
(select A.*,B.RQ ,
ROW_NUMBER() OVER(PARTITION BY A.DJBH ORDER BY RQ DESC) RN
 from A, B WHERE A.DJBH=B.DJBH) T
WHERE T.RN=1

1.方法一:
用开窗函数row_number(或者rank,dense_rank都可以),根据DJ BH分组,按照日期降序排序,得出排名第一的两表相连结果就是所需结果;
2.方法二:
把每个DJBH的最大日期找出max(RQ),然后两表相连结果即为所需结果;
3.题主说到的日期为varchar,通过日期函数to_date转化一下就好