[亿信BI4.7] 同样的分析表,在KDB数据库环境下,_PREV()函数报错没有足够的操作数

4617
15

养蚯蚓吃沙漠 小试身手Lv3

发表于2022-5-17 15:59

悬赏50

已解决

楼主
bi47
版本:精简版 V4.7.1_YYZWR12-build20200620135754-r27d35c6
同样的一张分析表,计算上年同期值用_PREV()函数,在oracle数据库中可以正常计算,在kdb数据库中计算报错:

_PREV(sum(NPCS_DW_CZ_YSZXDQ.LJZXS)/100000000,-12)

最近看过此主题的会员

esen_4YVMSUSNZ8

esen_53X71MVWTX

sddfvcww

yangsanchun

萧涤

chestnut

静轶

17608439833

vicky01

Bryce

小张同学

wxjianglihui

颜值区总司令

一点一点

ESENSOFT官方技术支持

yangqh

最佳答案
养蚯蚓吃沙漠 发表于 2022-5-17 18:17
我们的数据库是浪潮的KDB,不是kingbase

那可能是兼容问题,因为您这边是项目定制包,您明天找下400那边给安排研发处理一下
15个回答

只看楼主

yangqh 数据老手Lv5

发表于2022-5-17 16:05

只看该作者

取消 关注该作者的回复

沙发

报错看起来像是表达式哪里写的有问题,表样能导出一份看看不

养蚯蚓吃沙漠 小试身手Lv3

发表于2022-5-17 16:08

只看该作者

取消 关注该作者的回复

板凳

yangqh 发表于 2022-5-17 16:05
报错看起来像是表达式哪里写的有问题,表样能导出一份看看不

好,我发一份给您,但是我把oracle环境中能正常计算的分析表恢复到kdb的环境中,还是一样的报错 地方人大社保监督(20220517_153231).zip (8.41 KB, 下载次数: )

yangqh 数据老手Lv5

发表于2022-5-17 16:54

只看该作者

取消 关注该作者的回复

地板

A2表元上设置的数据期条件删除试下看是否能计算

养蚯蚓吃沙漠 小试身手Lv3

发表于2022-5-17 17:02

只看该作者

取消 关注该作者的回复

5#

yangqh 发表于 2022-5-17 16:54
A2表元上设置的数据期条件删除试下看是否能计算

不行

yangqh 数据老手Lv5

发表于2022-5-17 17:06

只看该作者

取消 关注该作者的回复

6#


报错弹窗下面的详情完整发出来看下

养蚯蚓吃沙漠 小试身手Lv3

发表于2022-5-17 17:18

只看该作者

取消 关注该作者的回复

7#

yangqh 发表于 2022-5-17 17:06
报错弹窗下面的详情完整发出来看下


报错信息如下:
com.esen.util.exp.ExpException: 计算浮动表元 GRID10->A2 (NPCS_DW_CZ_YSZXDQ.QJ)时出错:没有足够的操作数
  at com.esen.util.exp.ExpressionCompiler.popValue(ExpressionCompiler.java:75)
  at com.esen.util.exp.ExpressionCompiler.makeOpNode(ExpressionCompiler.java:182)
  at com.esen.util.exp.ExpressionCompiler.makeNode(ExpressionCompiler.java:267)
  at com.esen.util.exp.ExpressionCompiler.makeNodeThenPushOp(ExpressionCompiler.java:813)
  at com.esen.util.exp.ExpressionCompiler.processOpToken(ExpressionCompiler.java:762)
  at com.esen.util.exp.ExpressionCompiler.processAToken(ExpressionCompiler.java:472)
  at com.esen.util.exp.ExpressionCompiler.compile(ExpressionCompiler.java:329)
  at com.esen.util.exp.ExpressionCompiler.compile(ExpressionCompiler.java:298)
  at com.esen.util.exp.Expression.doCompile(Expression.java:161)
  at com.esen.util.exp.Expression.compile(Expression.java:155)
  at com.esen.util.exp.Expression.compile(Expression.java:132)
  at com.esen.util.exp.Expression.compile(Expression.java:122)
  at com.esen.db.sql.SelectTableUtil.getLeftJoinConditionForOracle(SelectTableUtil.java:48)
  at com.esen.db.sql.SelectTable.getJoinCondForOracle(SelectTable.java:398)
  at com.esen.db.sql.SelectTable.procOracleJoin(SelectTable.java:367)
  at com.esen.db.sql.SelectTable.getSql(SelectTable.java:199)
  at com.esen.db.sql.SelectTable.generatorOracleTable(SelectTable.java:605)
  at com.esen.db.sql.SelectTable.generatorTable(SelectTable.java:501)
  at com.esen.db.sql.SelectTable.getSql(SelectTable.java:190)
  at com.esen.db.sql.SelectTable.getSql(SelectTable.java:152)
  at com.esen.db.sql.SelectTable.getPageSql(SelectTable.java:148)
  at com.esen.irpt.rpdb.db.top.OlapResultMultImpl.getPageSql(OlapResultMultImpl.java:272)
  at com.esen.irpt.rpdb.db.top.OlapResultMultImpl.queryData(OlapResultMultImpl.java:405)
  at com.esen.irpt.rpdb.db.top.OlapResultMultImpl.doit(OlapResultMultImpl.java:230)
  at com.esen.irpt.rpdb.db.top.OlapResultMultImpl.(OlapResultMultImpl.java:97)
  at com.esen.irpt.rpdb.db.top.CalcOlapResult.calcGroupOlap(CalcOlapResult.java:78)
  at com.esen.irpt.fxcalc.impl.GroupOlapEngine.calc(GroupOlapEngine.java:35)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.OLTPResultManager.calcOlap(OLTPResultManager.java:554)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.OLTPResultManager.getOltpResult(OLTPResultManager.java:543)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.OLTPResultManager.getOltpData4AutoOlap(OLTPResultManager.java:155)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.OLTPResultManager.getOltpData(OLTPResultManager.java:88)
  at com.esen.irpt.fxcalc.impl.cache.FxBaseAnalyseReportCalc.getOltpData(FxBaseAnalyseReportCalc.java:502)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatFxqCalc.getOltpData(FloatFxqCalc.java:271)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatFxqInnerCalc.getOltpData(FloatFxqInnerCalc.java:80)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.getOltpData(FloatFxqInnerCalc.java:1174)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.getOltpData(FloatFxqInnerCalc.java:1145)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult_float_autoolap_processdata_group_A_ds(FloatFxqInnerCalc.java:962)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult_float_autoolap_processdata_group(FloatFxqInnerCalc.java:937)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult_float_autoolap_processdata(FloatFxqInnerCalc.java:908)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult_float_oltp(FloatFxqInnerCalc.java:841)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult_float(FloatFxqInnerCalc.java:793)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult(FloatFxqInnerCalc.java:149)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatFxqInnerCalc.calc(FloatFxqInnerCalc.java:59)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatFxqCalc.calc(FloatFxqCalc.java:267)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatRectInFxqResultImpl.processResult(FloatRectInFxqResultImpl.java:56)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.RectsInFxqResultImpl.processResult(RectsInFxqResultImpl.java:102)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatFxqResultImpl.processResult(FloatFxqResultImpl.java:98)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatFxqCalc.calc(FloatFxqCalc.java:105)
  at com.esen.irpt.fxcalc.impl.FxCalc.calc(FxCalc.java:34)
  at com.esen.irpt.fxcalc.impl.cache.RequestTask_FxqCalc.doRun(RequestTask_FxqCalc.java:104)
  at com.esen.irpt.req.AbstractRequestTask.call(AbstractRequestTask.java:85)
  at com.esen.platform.common.req.RequestTaskRunner.call(RequestTaskRunner.java:75)
  at com.esen.thread.LocaleTask.call(LocaleTask.java:60)
  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
  at java.lang.Thread.run(Thread.java:748)

yangqh 数据老手Lv5

发表于2022-5-17 17:31

只看该作者

取消 关注该作者的回复

8#

400(20220517_173026).zip (8.34 KB, 下载次数: )


导入这个表计算看下,是否有报错提示

养蚯蚓吃沙漠 小试身手Lv3

发表于2022-5-17 17:40

只看该作者

取消 关注该作者的回复

9#

yangqh 发表于 2022-5-17 17:31
导入这个表计算看下,是否有报错提示

还是一样的有报错,我之前试过把条件写在if里面

养蚯蚓吃沙漠 小试身手Lv3

发表于2022-5-17 17:46

只看该作者

取消 关注该作者的回复

10#

yangqh 发表于 2022-5-17 17:31
导入这个表计算看下,是否有报错提示

感觉报错就在函数_PREV()上,相同的分析表,我在oracle数据库的环境中是没有问题的,在kdb数据库的环境中会报上边的错误,感觉是不是函数在kdb数据库里不适用造成的啊

yangqh 数据老手Lv5

发表于2022-5-17 18:01

只看该作者

取消 关注该作者的回复

11#

养蚯蚓吃沙漠 发表于 2022-5-17 17:46
感觉报错就在函数_PREV()上,相同的分析表,我在oracle数据库的环境中是没有问题的,在kdb数据库的环境中 ...

表元表达式里面如果不用_PREV就不会报错吗
您kingbase什么版本

上一页12下一页共2页

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号