【已解决】执行SQL报错
金蝶云社区-姜李直
姜李直
0人赞赏了该文章 2,484次浏览 未经作者许可,禁止转载编辑于2016年11月21日 14:38:53

简单帐表
执行SQL的时候报错

“Kingdee.BOS.SQL.Exception.ParserException”类型的异常在 Kingdee.BOS.SQL.dll 中发生,但未在用户代码中进行处理

其他信息: parse error. detail message is :

unexcept token. token is : ',', at line 28 column 47, token type is 'Punctuation'

我调试过程中 把SQL放到SqlServer里面执行 没有问题啊

错误堆栈
Server stack trace:
在 Kingdee.BOS.SQL.TransUtil.getStmtList(String ksql)
在 Kingdee.BOS.SQL.TransUtil.Translate(String kSql, Int32 targetDbType, FormatOptions options)
在 Kingdee.BOS.App.Data.AbstractDatabase.CreateCommandByCommandType(CommandType commandType, String commandText, Boolean needTranslate, Int32 commandTimeout)
在 Kingdee.BOS.App.Data.DBUtils.Execute(Context ctx, String strSQL, IEnumerable`1 paramList, Boolean needTranslate)
在 Kingdee.BOS.App.Data.DBUtils.Execute(Context ctx, String strSQL)
在 Jzc.K3.FIN.Report.ReportPlugin.DoMainQuery(String Type, DateTime StartDate, DateTime EndDate, String tableName) 位置 c:\DevObject\Jzc.K3.FIN.Report\Jzc.K3.FIN.Report\ReportPlugin.cs:行号 242
在 Jzc.K3.FIN.Report.ReportPlugin.BuilderReportSqlAndTempTable(IRptParams filter, String tableName) 位置 c:\DevObject\Jzc.K3.FIN.Report\Jzc.K3.FIN.Report\ReportPlugin.cs:行号 81
在 Kingdee.BOS.Core.Report.PlugIn.AbstractSysReportServicePlugIn.CreateTempTable(IRptParams filter, String tablename)
在 Kingdee.BOS.Core.Report.PlugIn.AbstractSysReportServicePlugIn.GetDataForVirtual(IRptParams filter)
在 Kingdee.BOS.Core.Report.PlugIn.AbstractSysReportServicePlugIn.GetData(IRptParams filter)
在 Kingdee.BOS.App.Core.PlugInProxy.SysReportServicePlugInProxy.GetReportData(ReportServiceParameter parameter)
在 Kingdee.BOS.App.Core.SysReportService.GetReportData(ReportServiceParameter parameter)

Exception rethrown at [0]:
在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
在 Kingdee.BOS.Contracts.ISysReportService.GetReportData(ReportServiceParameter parameter)
在 Kingdee.BOS.ServiceHelper.SysReportServiceHelper.GetReportData(ReportServiceParameter parameter)
在 Kingdee.BOS.Model.Report.SysReportModel.GetData(Int32 start, Int32 rows)
在 Kingdee.BOS.Web.Report.SysReportView.GetListData()
在 Kingdee.BOS.Web.Report.SysReportView.<>c__DisplayClass4d.b__49()

报错SQL:
--期初余额
select SUM(FBEGINBALANCE) as FBEGINBALANCE, LEFT(b.FNUMBER,1) as Fnumber
into #qc
from T_GL_Balance a
join T_BD_ACCOUNTBOOK b on a.FACCOUNTBOOKID = b.FBOOKID --账簿
where A.FYEARPERIOD = '201611'
and FACCOUNTID in (select a.FACCTID from T_BD_ACCOUNT a
join T_BD_ACCOUNT_L b on a.FACCTID = b.FACCTID
where FNUMBER like '1002%') --仅取银行存款科目
group by LEFT(b.FNUMBER,1)
--期初到开始日期的金额
select sum(b.FDEBIT) as FDEBIT,SUM(B.FCREDIT) AS FCREDIT,LEFT(C.FNUMBER,1) AS fNUMBER
into #qcje
from V_CN_VOUCHER a
join V_CN_VOUCHERENTRY b on a.FVOUCHERID = b.FVOUCHERID --凭证明细
join T_BD_ACCOUNTBOOK c on a.FACCOUNTBOOKID = c.FBOOKID --账簿
join T_BD_ACCOUNTBOOK_l d on c.FBOOKID = d.FBOOKID --账簿名字
join T_BD_ACCOUNT e on b.FACCOUNTID = e.FACCTID --科目 For过滤1002科目以下
where FDATE between '2016/11/1 14:34:28' and '2016/11/21 14:34:28'
and e.FNUMBER like '1002%'
GROUP BY LEFT(C.FNUMBER,1)
--开始日期到结束日期的金额
select sum(b.FDEBIT) as FDEBIT,SUM(B.FCREDIT) AS FCREDIT,LEFT(C.FNUMBER,1) AS fNUMBER
into #qj
from V_CN_VOUCHER a
join V_CN_VOUCHERENTRY b on a.FVOUCHERID = b.FVOUCHERID --凭证明细
join T_BD_ACCOUNTBOOK c on a.FACCOUNTBOOKID = c.FBOOKID --账簿
join T_BD_ACCOUNTBOOK_l d on c.FBOOKID = d.FBOOKID --账簿名字
join T_BD_ACCOUNT e on b.FACCOUNTID = e.FACCTID --科目 For过滤1002科目以下
where FDATE between '2016/11/21 14:34:28' and '2016/11/27 14:34:28'
and e.FNUMBER like '1002%'
GROUP BY LEFT(C.FNUMBER,1)

select distinct ROW_NUMBER() over(order by b.fnumber) as FIDENTITYID,b.Fnumber,(isnull(b.FBEGINBALANCE,0) + isnull(c.FDEBIT,0)- isnull(c.FCREDIT,0)) as OpeningBalances,isnull(d.FCREDIT,0) as CurrentExpenditure,isnull(d.FDEBIT,0) as CurrentRevenues,(isnull(b.FBEGINBALANCE,0) + isnull(c.FDEBIT,0)- isnull(c.FCREDIT,0) +isnull(d.FDEBIT,0)-isnull(d.FCREDIT,0)) AS FinalBalance
from #qc b
left join #qcje c on b.Fnumber = c.Fnumber
left join #qj d on b.Fnumber = d.Fnumber

drop table #qc,#qcje,#qj