2016-01-02 49 views
-2

我wrinting子查询与下面的查询,但我得到错误的无效的SQL语句错误

无效的SQL语句错误

我不知道什么是错在这里

select enq.followup_sr_no ColFolSrno,case when enq.followup_sr_no=(select max(followup_sr_no) from xxcus.XXACL_PN_ENQUIRY_FOLLOWUP where cef_mkey=enq.cef_mkey) and enq.activity_id not in (80,40) then 'Edit' else 'View' end ColViewEdit, 

ENQ.FOLLOWUP_TYPE_ID ColFolTypeId,FOL.FOLLOW_TYPE ColFolType,ENQ.PRIORITY_ID ColPrioId,PRI.PRIORITY ColPriority, 
to_char(ENQ.FOLLOWUP_DATE,'dd/MM/yyyy') ColFolUpDt,ENQ.ACTIVITY_ID ColActId,ACT.ACTIVITY ColActivity,ENQ.REMARKS ColComments, 

'Flat-' || (select FP.FLAT_NO FROM xxcus.xxacl_pn_ratecard rc, xxcus.xxacl_pn_flatproj_v fp where RC.FLAT_ID=FP.FLAT_ID and RC.CEF_MKEY=enq.CEF_MKEY and RC.FOLLOWUP_SR_NO=enq.FOLLOWUP_SR_NO) ColPrint, 

to_char(ENQ.NEXT_FOLLOW_UP_DATE,'dd/MM/yyyy') ColNxtFolUpDt,ENQ.NEXT_ACTIVITY_ID ColNxtActId,NACT.ACTIVITY ColNxtActivity, (select RC.FLAT_ID FROM xxcus.xxacl_pn_ratecard rc where RC.CEF_MKEY=enq.CEF_MKEY and RC.FOLLOWUP_SR_NO=enq.FOLLOWUP_SR_NO)FLAT_ID , 

enq.mkey mkey , enq.ATTENDED_BY_MKEY AttendedByMkey , em.user_id User_Id , em.login_name EnqueryBy 

from XXACL_PN_EMPLOYEE_ALL_V em, xxcus.XXACL_PN_ENQUIRY_FOLLOWUP enq, xxcus.XXACL_PN_FOLLOWUP_TYPE_V fol,xxcus.XXACL_PN_PRIORITY_V pri,xxcus.XXACL_PN_ACTIVITY_V act,xxcus.XXACL_PN_ACTIVITY_V nact, xxcus.xxacl_pn_flatproj_v flt 

where ENQ.FOLLOWUP_TYPE_ID = FOL.FOLLOW_TYPE_ID(+) and ENQ.PRIORITY_ID = PRI.PRIORITY_ID(+) and ENQ.ACTIVITY_ID = ACT.ACTIVITY_ID(+) and ENQ.NEXT_ACTIVITY_ID = NACT.ACTIVITY_ID(+) AND enq.flat_id = flt.flat_id(+) and enq.ATTENDED_BY_MKEY = em.USER_ID(+) and and cef_mkey=2590 order by enq.followup_sr_no desc 
+0

开始对它进行格式化正常,你可能会看到错误,则 –

+0

@a_horse_with_no_name:肯定先生,就如何格式化查询任何提示?特别是:''SQL'和'Oracle'查询 – BNN

回答

1

你必须在最后线两条ANDand and cef_mkey=2590。删除一个,它是无效的语法。

select enq.followup_sr_no ColFolSrno,case when enq.followup_sr_no=(select max(followup_sr_no) from xxcus.XXACL_PN_ENQUIRY_FOLLOWUP where cef_mkey=enq.cef_mkey) and enq.activity_id not in (80,40) then 'Edit' else 'View' end ColViewEdit, 
ENQ.FOLLOWUP_TYPE_ID ColFolTypeId,FOL.FOLLOW_TYPE ColFolType,ENQ.PRIORITY_ID ColPrioId,PRI.PRIORITY ColPriority, 
to_char(ENQ.FOLLOWUP_DATE,'dd/MM/yyyy') ColFolUpDt,ENQ.ACTIVITY_ID ColActId,ACT.ACTIVITY ColActivity,ENQ.REMARKS ColComments, 
'Flat-' || (select FP.FLAT_NO FROM xxcus.xxacl_pn_ratecard rc, xxcus.xxacl_pn_flatproj_v fp where RC.FLAT_ID=FP.FLAT_ID and RC.CEF_MKEY=enq.CEF_MKEY and RC.FOLLOWUP_SR_NO=enq.FOLLOWUP_SR_NO) ColPrint, 
to_char(ENQ.NEXT_FOLLOW_UP_DATE,'dd/MM/yyyy') ColNxtFolUpDt,ENQ.NEXT_ACTIVITY_ID ColNxtActId,NACT.ACTIVITY ColNxtActivity, (select RC.FLAT_ID FROM xxcus.xxacl_pn_ratecard rc where RC.CEF_MKEY=enq.CEF_MKEY and RC.FOLLOWUP_SR_NO=enq.FOLLOWUP_SR_NO)FLAT_ID , 
enq.mkey mkey , enq.ATTENDED_BY_MKEY AttendedByMkey , em.user_id User_Id , em.login_name EnqueryBy 
from XXACL_PN_EMPLOYEE_ALL_V em, xxcus.XXACL_PN_ENQUIRY_FOLLOWUP enq, xxcus.XXACL_PN_FOLLOWUP_TYPE_V fol,xxcus.XXACL_PN_PRIORITY_V pri,xxcus.XXACL_PN_ACTIVITY_V act,xxcus.XXACL_PN_ACTIVITY_V nact, xxcus.xxacl_pn_flatproj_v flt 
where ENQ.FOLLOWUP_TYPE_ID = FOL.FOLLOW_TYPE_ID(+) and ENQ.PRIORITY_ID = PRI.PRIORITY_ID(+) and ENQ.ACTIVITY_ID = ACT.ACTIVITY_ID(+) and ENQ.NEXT_ACTIVITY_ID = NACT.ACTIVITY_ID(+) AND enq.flat_id = flt.flat_id(+) and enq.ATTENDED_BY_MKEY = em.USER_ID(+) and cef_mkey=2590 order by enq.followup_sr_no desc 
+0

我没有得到你,whe添加或删除这些东西??。如果我想要两个呢? – BNN

+0

我删除了那一端,仍然得到那个错误 – BNN

+0

谢谢你为我工作.. – BNN

0

在查询的最后一行,你在一排有

where ENQ.FOLLOWUP_TYPE_ID = FOL.FOLLOW_TYPE_ID(+) and ENQ.PRIORITY_ID = PRI.PRIORITY_ID(+) and ENQ.ACTIVITY_ID = ACT.ACTIVITY_ID(+) and ENQ.NEXT_ACTIVITY_ID = NACT.ACTIVITY_ID(+) AND enq.flat_id = flt.flat_id(+) and enq.ATTENDED_BY_MKEY = em.USER_ID(+) and and cef_mkey=2590 order by enq.followup_sr_no desc 

通知你已经和运营商的两倍。

where ENQ.FOLLOWUP_TYPE_ID = FOL.FOLLOW_TYPE_ID(+) and ENQ.PRIORITY_ID = PRI.PRIORITY_ID(+) and ENQ.ACTIVITY_ID = ACT.ACTIVITY_ID(+) and ENQ.NEXT_ACTIVITY_ID = NACT.ACTIVITY_ID(+) AND enq.flat_id = flt.flat_id(+) and enq.ATTENDED_BY_MKEY = em.USER_ID(+) and cef_mkey=2590 order by enq.followup_sr_no desc 

这就是该行应该是什么。另外,如果您使用ANSI-92而不是ANSI-89语法(JOIN代替FROM语句中的所有表),那么您可能不会收到此错误,因为您在WHERE子句中只有一个条件。