HANA从SAP BW Hierarchie中使用CalculationView选择

2020-09-28 00:40发布

         点击此处--->   EasySAP.com群内免费提供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/*********结束过程脚本************/

 

         点击此处--->   EasySAP.com群内免费提供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/*********结束过程脚本************/

 
付费偷看设置
发送
1条回答
悻福寶寶
1楼 · 2020-09-28 01:37.采纳回答

ABAP中与"循环遍历内部表"直接对应的概念是SQL脚本中的" Cursor-For-Loop"。

看看上面的方法来解决层次结构,我想,通过实现一个返回必要字符串的函数,您可能会更好。

"单行..."错误是由于以下事实造成的:您的子查询不会简单地从联接中返回第一个(也是第一个)匹配记录,而是所有匹配记录。 因此带有" hied = ..."的WHERE条件失败了,因为它只能与单个值进行比较。

一周热门 更多>