2020-08-14 00:00发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好,
我迷路了,因为没有关于消息" SAP DBTech JDBC:[7]:不支持的功能:不支持非常量表达式:"的信息。 谁能给我一个提示,该消息的含义是什么,尤其是第二部分"不能支持非恒定表达"?
是否存在发生此错误的典型情况?
最好的问候
丹尼尔
我看不到提到的 Artem Tkachev 中的任何步骤如何解决当前问题。
实际上,我强烈建议继续使用公用表表达式(WITH子句),因为它们会导致结构更好的SQL代码。
我看到的是"操作"中的子选择 表表达式不能保证返回标量值; 至少在编译时不适合SQL编译器。
因此,为什么不将它写为外部联接呢?
,操作(xxx,released_supp_date)为 (选择xxx ,stat.udate为released_supp_date, ,yyy ,... 从aufk.objnr = status.objnr和status.stat ='EXXXX'且lineNum = 1上的aufkleft外连接状态
请注意,您可以在表表达式名称的声明之后提供列列表-这样,您可以预先定义"操作"表达式的结构。 然后,根据您的编辑器,您可以很好地"折叠"实现。
在我的演示文稿中可以找到使复杂语句更易于理解的更多技巧(Humane DB设计和编程),来自 sitMEL今年早些时候:
能否在您的网站上添加更多详细信息 问题(您打算做什么;您正在使用什么HANA版本,...)?
也许我展示的SQL比实际要容易。 正如Breddemann先生提到的那样,新的aufkstat部分封装了status和aufk表之间的OUTER JOIN。
但是结果是一样的。
具有 ,日期(日期,工作,今天)为( ... ) ,fpl_status为( 在(PARTITION BY objnr,stat ORDER BY udate DESC)上选择row_number()作为lineNum,objnr,udate 来自" XXX" .jcds 其中mandt ='100' 和stat ='EXXXX' 和inact ='' ) ,aufkstat为( 选择aufk.objnr ,将fpl_status.udate作为fpl 来自" XXX" .aufk aufk.objnr上的左外部联接fpl_status = fpl_status.objnr 并且fpl_status.lineNum = 1 其中aufk.mandt ='100' 和aufk.werks ='1234' ) ,操作为( 选择afko.aufnr, afko.aufpl, aufk.werks, ... (从aufkstat中选择fpl,其中objnr = aufk.objnr)作为release_supp_date, ... 来自" XXX" .afko 在" XXX" .aufk.aufnr上加入" XXX" .aufk =" XXX" .afko.aufnr WHERE" XXX" .afko.mandt ='100' 和" XXX" .aufk.werks ='1234' ) 选择 日期, "待办事项"作为类别, aufnr, 怪异的 release_supp_date, release_supp_color_date, ... 从 操作,日期 哪里 日期 = afko.gstrp和 功= 1;
HANA版本为2.00.048.00。 计算视图的SCLscript由以下部分组成,该部分来自我猜。 无论如何,这是我在脚本中更改的最后一个。
如果我通过SAP HANA Studio在SQL控制台中启动了sqlscript,那么它将起作用。 如果我在select语句中使用该视图,则它将不起作用。
状态为
(
在(PARTITION BY objnr,stat ORDER BY udate DESC)上选择row_number()作为lineNum,objnr,stat,udate
来自jcds
其中mandt ='100',并且统计信息位于('EXXXX','EYYYY'),inact =''
),
操作方式
(...)
选择xxx,(从objnr = aufk.objnr和stat ='EXXXX'且lineNum = 1的状态中选择udate)作为release_supp_date,
yyy
....,
来自aufk
其中aufk.mandt ='100'和aufk.werks ='0815'
我会做什么:
1.将表的完整路径不仅写入
2.使用...摆脱构造,并就地编写所有子查询
3。 确保已在sql脚本视图中创建了所有类型正确的结果列。
4。 尝试对每个子查询进行计算,以找出整个查询的哪个部分产生了错误
感谢您的答复。 我添加了对SQL的修改,因为第一篇文章中的SQL包含了一些简化。
最多设置5个标签!
我看不到提到的 Artem Tkachev 中的任何步骤如何解决当前问题。
实际上,我强烈建议继续使用公用表表达式(WITH子句),因为它们会导致结构更好的SQL代码。
我看到的是"操作"中的子选择 表表达式不能保证返回标量值; 至少在编译时不适合SQL编译器。
因此,为什么不将它写为外部联接呢?
请注意,您可以在表表达式名称的声明之后提供列列表-这样,您可以预先定义"操作"表达式的结构。 然后,根据您的编辑器,您可以很好地"折叠"实现。
在我的演示文稿中可以找到使复杂语句更易于理解的更多技巧(Humane DB设计和编程),来自 sitMEL今年早些时候:
能否在您的网站上添加更多详细信息 问题(您打算做什么;您正在使用什么HANA版本,...)?
也许我展示的SQL比实际要容易。 正如Breddemann先生提到的那样,新的aufkstat部分封装了status和aufk表之间的OUTER JOIN。
但是结果是一样的。
你好,
HANA版本为2.00.048.00。 计算视图的SCLscript由以下部分组成,该部分来自我猜。 无论如何,这是我在脚本中更改的最后一个。
如果我通过SAP HANA Studio在SQL控制台中启动了sqlscript,那么它将起作用。 如果我在select语句中使用该视图,则它将不起作用。
状态为
(
在(PARTITION BY objnr,stat ORDER BY udate DESC)上选择row_number()作为lineNum,objnr,stat,udate
来自jcds
其中mandt ='100',并且统计信息位于('EXXXX','EYYYY'),inact =''
),
操作方式
(...)
选择xxx,(从objnr = aufk.objnr和stat ='EXXXX'且lineNum = 1的状态中选择udate)作为release_supp_date,
yyy
....,
来自aufk
其中aufk.mandt ='100'和aufk.werks ='0815'
我会做什么:
1.将表的完整路径不仅写入
2.使用...摆脱构造,并就地编写所有子查询
3。 确保已在sql脚本视图中创建了所有类型正确的结果列。
4。 尝试对每个子查询进行计算,以找出整个查询的哪个部分产生了错误
感谢您的答复。 我添加了对SQL的修改,因为第一篇文章中的SQL包含了一些简化。
一周热门 更多>
点击此处---> 一起学习S4 HANA ...
相关问答
采纳回答
编辑标签
举报内容
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
付费偷看金额在0.1-10元之间