2015-08-30 2 views
1

У меня есть таблица с именем remit_bill, и я хотел бы получить максимальную дату из этой таблицы, используя следующий запрос, но он продолжает показывать мне ошибки. Есть несколько дат под тем же bill_no.i хотите получить максимальную дату с coll_amt value.any помощь с этим будет оценена.Как получить максимальную дату в 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 не поддерживает ключевое слово '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

благодарит за запрос Joy – Iftekhar

+0

welcome @Iftekhar –

Смежные вопросы