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