使用HANA select中标量函数的值

2020-08-31 10:43发布

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

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


嗨,

我需要在多个SQL选择中显示几个常量。 这些常量来自仅包含一条记录的表。

如果标量函数不允许任何SQL操作,如何从HANA过程或函数中获取这些常量。

SELECT MANDT,MATNR,Cosant01,constant02

从" SAPSR3"到" MARA"

谢谢

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

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


嗨,

我需要在多个SQL选择中显示几个常量。 这些常量来自仅包含一条记录的表。

如果标量函数不允许任何SQL操作,如何从HANA过程或函数中获取这些常量。

SELECT MANDT,MATNR,Cosant01,constant02

从" SAPSR3"到" MARA"

谢谢

付费偷看设置
发送
6条回答
悻福寶寶
1楼 · 2020-08-31 11:28.采纳回答

Aleksandrs,您好

请尝试使用交叉连接(1 = 1条件)使用以下语句。 它将帮助您从设置表中获取常量。

开始
 IT_MARA =从DUMMY中选择100 AS MANDT,从MATNR中选择'10 -10'
 全联盟
 从DUMMY中选择100 AS MANDT,'10 -20'AS MATNR
 ;

 IT_SETUP =从DUMMY中选择'AA'AS Costant01,'BB'AS constant02;

 SELECT MARA。*,SETUP。*

 来自:IT_MARA AS MARA
 JOIN:IT_SETUP AS SETUP
 开1 = 1
 ;
 END 

输出如下图所示:

capture.jpg

xfwsx85
2楼-- · 2020-08-31 11:14

代替1 = 1的"技巧"也可以 为此使用正确的SQL连接:

CROSS JOIN

 SELECT/* SELECT *确实不应该使用*/
        MARA。,MARA。,MARA。
      ,SETUP。,SETUP。,SETUP。,SETUP。
 从
            :IT_MARA AS MARA
 CROSS JOIN:IT_SETUP AS SETUP; 

请注意,交叉联接将为两个表中每个元组组合创建一个结果元组。 这可能不是OP想要的。

土豆飞人
3楼-- · 2020-08-31 11:24

感谢Lars

设置表中的参数取决于客户端。 我想通过函数/过程来选择它们,以避免加入

表MARA客户端相关

选择MANDT,MATNR,procedure01()AS CLIENT_ID,procedure02作为CO_AREA

表参数中的参数-取决于客户端

MANDT CLIENT_ID CO_AREA

槿木_熙
4楼-- · 2020-08-31 11:29

联接将是更快的选项-不知道为什么要避免它。

何必丶何苦呢
5楼-- · 2020-08-31 11:16
选择mandt,
        matnr,
        " abc"为常量1,
        '123'为常量2
 来自MARA。
  
      
SAP小菜
6楼-- · 2020-08-31 11:05

不幸的是,常量应该从设置表中获取,因为它们可以更改并且可以在多个地方使用。

硬编码不是一个好的选择。

一周热门 更多>