[英]Getting error while executing the hql query
在 hql 查询下方执行此操作时出现错误。 以下是 hql 中的查询及其生成的错误消息。 请提出更改建议
String query = "SELECT " +
"c " +
" FROM (select DISTINCT " +
"b " +
"FROM (select " +
"a.gcsAccountId, " +
"a.msisdn, " +
"a.partnerCode as bankID," +
"0 as processingStatus from ( select min(additionDate) fechaAfilia, a.gcsAccountId, a.partnerCode, a.msisdn from RGcscustomerAccountM c, " +
"RGcscustomerFundingAcctMp a, MonthlyGcsBillPaymentL mf where c.gcsAccountId=a.gcsAccountId and a.status ='A' and c.status='A' and " +
"mf.gcsAccountId = a.gcsAccountId and mf.collectorStatus in (0,1)and coalesce(mf.monthlyBillAmount,0)<> 0 " +
"group by a.partnerCode,a.gcsAccountId, a.msisdn order by a.gcsAccountId, a.msisdn, fechaAfilia)a where (a.fechaAfilia, a.gcsAccountId, a.msisdn) " +
"in (select min(fechaAfilia), gcsAccountId,msisdn from (select min(additionDate) fechaAfilia, a.gcsAccountId, a.partnerCode, a.msisdn from RGcscustomerAccountM c, " +
"RGcscustomerFundingAcctMp a where c.gcsAccountId=a.gcsAccountId and a.status ='A' and c.status='A' and c.gcsAccountId = a.gcsAccountId group by a.partnerCode, " +
"a.gcsAccountId, a.msisdn order by a.gcsAccountId, a.msisdn, fechaAfilia) group by gcsAccountId,msisdn ) union all select a.gcsAccountId, a.msisdn ,a.partnerCode, " +
"0 as processingStatus from ( select min(additionDate) fechaAfilia, a.gcsAccountId, a.partnerCode, a.msisdn from RGcscustomerAccountM c, RGcscustomerFundingAcctMp " +
"a,FtNsfTL nsf,FtTransferTO t where c.gcsAccountId=a.gcsAccountId and a.status ='A' and c.status='A' and nsf.gcsAccountId=a.gcsAccountId and nsf.nsfAmount<> 0 " +
"and nsf.isNsfHandledStatus in(0,1)and nsf.gcsAccountId = t.gcsAccountId and nsf.gcsSequenceNo = t.gcsSequenceNo and t.msisdn = a.msisdn group " +
"by a.partnerCode,a.gcsAccountId, a.msisdn order by a.gcsAccountId, a.msisdn, fechaAfilia) a where (a.fechaAfilia,a.gcsAccountId, a.msisdn) " +
"in( select MIN(fechaAfilia), gcsAccountId, msisdn from( select min(additionDate) fechaAfilia,a.gcsAccountId, a.partnerCode,a.msisdn from RGcscustomerAccountM " +
"c, RGcscustomerFundingAcctMp a WHERE c.gcsAccountId = a.gcsAccountId AND a.status = 'A' AND c.status = 'A' GROUP BY a.partnerCode, a.gcsAccountId, " +
"a.msisdn ORDER BY a.gcsAccountId, a.msisdn, fechaAfilia) GROUP BY " +
"gcsAccountId, " +
"msisdn " +
")) b " +
"WHERE " +
"b.bankID= 57 ORDER BY gcsAccountId ) c ";
这是错误,它的显示,可能缺少某些东西。
unexpected token: ( near line 1, column 16 [SELECT c FROM (select DISTINCT b FROM (select a.gcsAccountId, a.msisdn, a.partnerCode as bankID,0 as processingStatus from ( select min(additionDate) fechaAfilia, a.gcsAccountId, a.partnerCode, a.msisdn from
这是更改后的查询。
String query = "SELECT " +
"c.gcsAccountId,c.msisdn,c.bankID,c.processingStatus FROM (select DISTINCT b.gcsAccountId,b.msisdn,b.bankID,b.processingStatus FROM (select "+
"a.gcsAccountId, " +
"a.msisdn, " +
"a.partnerCode as bankID," +
"0 as processingStatus from ( select min(additionDate) fechaAfilia, a.gcsAccountId, BankId as a.partnerCode , a.msisdn from RGcscustomerAccountM c, " +
"RGcscustomerFundingAcctMp a, MonthlyGcsBillPaymentL mf where c.gcsAccountId=a.gcsAccountId and a.status ='A' and c.status='A' and " +
"mf.gcsAccountId = a.gcsAccountId and mf.collectorStatus in (0,1)and coalesce(mf.monthlyBillAmount,0)<> 0 " +
"group by a.partnerCode,a.gcsAccountId, a.msisdn order by a.gcsAccountId, a.msisdn, fechaAfilia)a where (a.fechaAfilia, a.gcsAccountId, a.msisdn) " +
"in (select min(fechaAfilia), gcsAccountId,msisdn from (select min(additionDate) fechaAfilia, a.gcsAccountId, a.partnerCode, a.msisdn from RGcscustomerAccountM c, " +
"RGcscustomerFundingAcctMp a where c.gcsAccountId=a.gcsAccountId and a.status ='A' and c.status='A' and c.gcsAccountId = a.gcsAccountId group by a.partnerCode, " +
"a.gcsAccountId, a.msisdn order by a.gcsAccountId, a.msisdn, fechaAfilia) group by gcsAccountId,msisdn ) union all select a.gcsAccountId, a.msisdn ,a.partnerCode, " +
"0 as processingStatus from ( select min(additionDate) fechaAfilia, a.gcsAccountId, a.partnerCode, a.msisdn from RGcscustomerAccountM c, RGcscustomerFundingAcctMp " +
"a,FtNsfTL nsf,FtTransferTO t where c.gcsAccountId=a.gcsAccountId and a.status ='A' and c.status='A' and nsf.gcsAccountId=a.gcsAccountId and nsf.nsfAmount<> 0 " +
"and nsf.isNsfHandledStatus in(0,1)and nsf.gcsAccountId = t.gcsAccountId and nsf.gcsSequenceNo = t.gcsSequenceNo and t.msisdn = a.msisdn group " +
"by a.partnerCode,a.gcsAccountId, a.msisdn order by a.gcsAccountId, a.msisdn, fechaAfilia) a where (a.fechaAfilia,a.gcsAccountId, a.msisdn) " +
"in( select MIN(fechaAfilia), gcsAccountId, msisdn from( select min(additionDate) fechaAfilia,a.gcsAccountId, a.partnerCode,a.msisdn from RGcscustomerAccountM " +
"c, RGcscustomerFundingAcctMp a WHERE c.gcsAccountId = a.gcsAccountId AND a.status = 'A' AND c.status = 'A' GROUP BY a.partnerCode, a.gcsAccountId, " +
"a.msisdn ORDER BY a.gcsAccountId, a.msisdn, fechaAfilia) GROUP BY " +
"gcsAccountId, " +
"msisdn " +
")) b " +
"WHERE " +
"b.bankID= 68 ORDER BY gcsAccountId ) c ";
SELECT c FROM (select DISTINCT b FROM (select ...
好吧,您正在从返回distinct b
的子查询中选择c
。 那行不通。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.