Sql 如何使用子查询在Oracle中获取最大日期

Sql 如何使用子查询在Oracle中获取最大日期,sql,oracle,subquery,Sql,Oracle,Subquery,我有一个名为汇款单的表,我希望使用以下查询从该表中获取最长日期,但它不断向我显示错误。同一票据编号下有多个日期。我希望使用coll\u amt值获取最长日期。如有任何帮助,将不胜感激 SQL> desc remit_bill Name Null? Type ------------------------------- -------- ---- SC_CD NOT NUL

我有一个名为汇款单的表,我希望使用以下查询从该表中获取最长日期,但它不断向我显示错误。同一票据编号下有多个日期。我希望使用coll\u amt值获取最长日期。如有任何帮助,将不胜感激

SQL> desc remit_bill
 Name                            Null?    Type
 ------------------------------- -------- ----
 SC_CD                           NOT NULL VARCHAR2(2)
 RMT_NO                          NOT NULL VARCHAR2(6)
 RMT_DT                                   DATE
 BILL_NO                         NOT NULL VARCHAR2(6)
 COLL_AMT                        NOT NULL NUMBER(10,2)
查询:

select sum(COLL_AMT) FROM REMIT_BILL AS P

WHERE bill_no = '887332' and rmt_dt=(SELECT MAX(rmt_dt) FROM REMIT_BILL AS P2

where P2.bill_no=P.BILL_NO

--GROUP BY COLL_AMT

)

GROUP BY COLL_AMT
错误消息:

select sum(COLL_AMT) FROM REMIT_BILL AS P
                                     *
ERROR at line 1:
ORA-00933: SQL command not properly ended


SQL> 
图片:

试试这个

select sum(p.COLL_AMT) FROM REMIT_BILL P

WHERE p.bill_no = '887332' and p.rmt_dt=(SELECT MAX(rmt_dt) FROM REMIT_BILL P2

where P2.bill_no=P.BILL_NO

)

GROUP BY p.COLL_AMT

Oracle不支持表别名的
AS
关键字。只需使用汇款单P中的
这并不完全正确,XMLTABLE和JSON\u表可以使用“AS”作为别名,子查询中的factoring子句是必需的。