点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好,
我想在带有CalculationView的表中从SAP BW层次结构中选择一个层次结构。
当我在第一次选择(销售)中仅选择一个项目时,一切正常。
但是当我要获取所有项目时,出现错误"错误:SAP DBTech JDBC:[305]:单行查询返回多行"。
在ABAP中,我将通过循环解决此问题,但是如何在SQL中修复此错误?
/*********开始过程脚本************/ 开始 saleseng =选择"/img/BIC/PSD_FA" || "/img/BIC/SALESENG"作为PSDFASALESENG 来自" SAPEBH"。"/img/BIC/PSALESENG" 其中"/img/BIC/PSD_FA" ='00001'; var_out =选择 节点名称为SALESENG, 对( (从" SAPEBH"中选择节点名称。"/img/BIC/HSALESENG",其中NODEID = (从" SAPEBH"中选择父级。"/img/BIC/HSALESENG",其中NODEID =(从" SAPEBH"中选择父级。"/img/BIC/HSALESENG",其中NODEID = (从" SAPEBH"中选择父级。"/img/BIC/HSALESENG",其中节点名= se.psdfasaleseng,hieid ='0005PF0NDLY7G20J8L1R2OIBV') 和hieid ='0005PF0NDLY7G20J8L1R2OIBV') 和hieid ='0005PF0NDLY7G20J8L1R2OIBV') 和hieid ='0005PF0NDLY7G20J8L1R2OIBV'),5)作为PSD_FA, 对( (从" SAPEBH"中选择节点名称。"/img/BIC/HSALESENG",其中NODEID = (从" SAPEBH"中选择父级。"/img/BIC/HSALESENG",其中NODEID = (从" SAPEBH"中选择父级。"/img/BIC/HSALESENG",其中节点名= se.psdfasaleseng 和hieid ='0005PF0NDLY7G20J8L1R2OIBV') 和hieid ='0005PF0NDLY7G20J8L1R2OIBV') 和hieid ='0005PF0NDLY7G20J8L1R2OIBV'),5)作为区域, 对( (从" SAPEBH"中选择节点名称。"/img/BIC/HSALESENG",其中NODEID = (从" SAPEBH"中选择父级。"/img/BIC/HSALESENG",其中nodename = 伪装法 和hieid ='0005PF0NDLY7G20J8L1R2OIBV') 和hieid ='0005PF0NDLY7G20J8L1R2OIBV'),5)作为BRANCH, 计数(NODENAME)为COUNT 来自" SAPEBH"。"/img/BIC/HSALESENG"为h 内部连接:saleseng as se on psdfasaleseng =节点名称 其中nodename = se.psdfasaleseng和 hieid ='0005PF0NDLY7G20J8L1R2OIBV' 按节点名称se.psdfasaleseng分组; END/*********结束过程脚本************/
ABAP中与"循环遍历内部表"直接对应的概念是SQL脚本中的" Cursor-For-Loop"。
看看上面的方法来解决层次结构,我想,通过实现一个返回必要字符串的函数,您可能会更好。
"单行..."错误是由于以下事实造成的:您的子查询不会简单地从联接中返回第一个(也是第一个)匹配记录,而是所有匹配记录。 因此带有" hied = ..."的WHERE条件失败了,因为它只能与单个值进行比较。
一周热门 更多>