2015-08-30 97 views
1

我有一個名爲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> 

圖片:

tab

+0

Oracle不支持* table *別名的'AS'關鍵字。只需使用'FROM REMIT_BILL P' –

+0

這不完全正確,XMLTABLE和JSON_TABLE可以使用'AS'進行別名,而子查詢因子分句是強制性的。 – Husqvik

回答

2

嘗試此

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 
+0

感謝您的查詢快樂 – Iftekhar

+0

歡迎@Iftekhar –