SAP查询生成器/预览-必须指定要从中选择的表

2020-09-01 07:01发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,其他开发人员。 我知道这个问题肯定已经回答了几次,原因是为什么可以在查询预览中引发该错误,但是我的情况可能有所不同,因为我还没有理解为什么这段代码在使用参数时无法在SAP中执行。

(案例T2。4时的水平
                           (选择左(K1.AcctCode,6)+':'+ K1.AcctName
                             从SAP_LOG_TZN_PROD.dbo.OACT L42内部联接
                                                    SAP_LOG_TZN_PROD.dbo.OACT K1 ON L42.FatherNum = K1.AcctCode
                             在哪里L42.AcctCode =
                                                        (选择L41.FatherNum
                                                          来自SAP_LOG_TZN_PROD.dbo.OACT L41
                                                          在哪里L41.AcctCode = T3.AcctCode))
                           (选择左(K2.AcctCode,6)+':'+ K2.AcctName
                             从SAP_LOG_TZN_PROD.dbo.OACT L43内联接
                                                    SAP_LOG_TZN_PROD.dbo.OACT K2 ON L43.FatherNum = K2.AcctCode
                             L43.AcctCode = T3.AcctCode)END)作为"帐户级别1" 

可以看出,表已被别名化。 当我将这段代码添加到没有它就可以正常执行的其余代码块中时,整个查询将失败,并且 ...必须指定要从中选择的表... 。 我尝试了几种方法来修改它,但均未成功,以使其与其余代码一起运行。

任何帮助,我都会非常感谢。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,其他开发人员。 我知道这个问题肯定已经回答了几次,原因是为什么可以在查询预览中引发该错误,但是我的情况可能有所不同,因为我还没有理解为什么这段代码在使用参数时无法在SAP中执行。

(案例T2。4时的水平
                           (选择左(K1.AcctCode,6)+':'+ K1.AcctName
                             从SAP_LOG_TZN_PROD.dbo.OACT L42内部联接
                                                    SAP_LOG_TZN_PROD.dbo.OACT K1 ON L42.FatherNum = K1.AcctCode
                             在哪里L42.AcctCode =
                                                        (选择L41.FatherNum
                                                          来自SAP_LOG_TZN_PROD.dbo.OACT L41
                                                          在哪里L41.AcctCode = T3.AcctCode))
                           (选择左(K2.AcctCode,6)+':'+ K2.AcctName
                             从SAP_LOG_TZN_PROD.dbo.OACT L43内联接
                                                    SAP_LOG_TZN_PROD.dbo.OACT K2 ON L43.FatherNum = K2.AcctCode
                             L43.AcctCode = T3.AcctCode)END)作为"帐户级别1" 

可以看出,表已被别名化。 当我将这段代码添加到没有它就可以正常执行的其余代码块中时,整个查询将失败,并且 ...必须指定要从中选择的表... 。 我尝试了几种方法来修改它,但均未成功,以使其与其余代码一起运行。

任何帮助,我都会非常感谢。

付费偷看设置
发送
10条回答
追夢秋陽
1楼-- · 2020-09-01 07:39

感谢您的快速回复。

您的2个查询的

差异检查表示比Case语句更多的更改。 请参考所附的截图,显示差异结果。 红色突出显示的部分是代码错误的查询中不存在的部分。 绿色突出显示的文本是原始查询中新添加的部分。

有关错误和差异结果的详细信息,请仔细检查"业务一"中是否存在表" SAP_LOG_TZN_PROD.dbo.OACT"。 看来,您查询中的Select之一无法找到特定的数据库表,因此您会收到错误消息"必须指定表...。"

请分享您的问题的最新更新。

如果您的问题得到解决,请将适当的回答标记为答案。

祝大家好运

Sam

亦是此间程序员
2楼-- · 2020-09-01 07:55

谢谢您的输入。 我从未在实践中经历过这种情况,并且不知道您可以这样做。 最后的目的是将查询与已经集成在我们的B1环境中的第三方报告工具集成。 除非它首先在Query Manager中成功运行,否则该报告将不起作用。

大简至美
3楼-- · 2020-09-01 07:37

Hi

有时,Query Manager无法运行复杂的查询并显示此消息。

p>

我解决了创建存储过程以运行此查询的问题,仅在查询管理器中我写了exec StoreProcedureName

亲切的问候

Agustín

黑丝骑士
4楼-- · 2020-09-01 07:37

关于您的回复:

" CASE语句块的复杂性可能是查询管理器无法识别该表或其块中的别名。没有该CASE块,查询运行良好,并且在Microsoft SQL中整体运行良好 如果直接提供参数详细信息,请访问Server Management Studio。

我想我需要重写CASE块以使其更简单或更容易分解,以获得与我需要的结果相同的结果,因为这是告诉我我在数据中查看的每个帐户的帐户级别。/em>"

-如果同一查询在Microsoft SQL Server Management Studio中使用CASE块运行良好,则可能值得以更简单的方式或使用存储过程(如Agustin Marcos Cividanes所建议的那样)重写CASE块。

祝你好运,

山姆

一周热门 更多>