我有一個名爲remit_bill的表,並且我想使用以下查詢從此表中獲取最大日期,但它始終顯示錯誤。有幾個日期在相同的bill_no.i下想要獲得與coll_amt值的最大日期。任何幫助,這將不勝感激。如何使用子查詢在Oracle中獲取最大日期
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>
圖片:
Oracle不支持* table *別名的'AS'關鍵字。只需使用'FROM REMIT_BILL P' –
這不完全正確,XMLTABLE和JSON_TABLE可以使用'AS'進行別名,而子查詢因子分句是強制性的。 – Husqvik