簡體   English   中英

執行 hql 查詢時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM