从Oracle SQL转换为Open SQL的帮助

2020-09-04 21:35发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, (我很抱歉,因为我对...

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

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


大家好,

(我很抱歉,因为我对SAP或Open SQL都不很了解)

我正在尝试从Oracle转换以下SQL语句:

选择1
 来自sapsr3.zt01 t1
 内连接sapsr3.zt01 t2 ON(
         (
             t1.number_from <= t2.number_to
             AND t2.number_from <= t1.number_to
             )
         并不是 (
             t1.number_from = t2.number_from
             AND t2.number_to = t1.number_to
             )
         )
 t1.dat1 ='00000000'; 

(在这种情况下,我正在尝试检测可能重复或重叠的数字范围(number_from,number_to)。

因此,我以我认为正确的OPEN SQL语法编写此代码:

选择t1〜str1到w_str
 从zt01作为t1
 内联zt01为t2 ON(
         (
             t1〜number_from <= t2〜number_to
             AND t2〜number_from <= t1〜number_to
             )
         并不是 (
             t1〜number_from = t2〜number_from
             AND t2〜number_to = t1〜number_to
             )
         )
 t1〜dat1 ='00000000'。

然后我发现我不能在ON子句中使用NOT ...在其他任何SQL中,我都可以通过将括号内的所有关系取反,将=更改为<>并将AND更改为OR来省略NOT子句。 但是,似乎OPEN SQL也不喜欢OR。

有什么想法吗?

预先感谢

路易斯


5条回答
土豆飞人
2020-09-04 21:47
< p>奎恩,

感谢您的回答。 不幸的是,我们在ABAP版本(7.00)上处于黑暗时代,并且编译器消息非常清楚,在使用ON子句时不允许NOT或OR的事实:

用户需要检查特定范围(甚至可以是一个范围,例如5到5)与Z表中的另一个范围(例如4到7)不一致。 让我尝试您的代码,然后再发表评论。 另外,如Sandra所写,请将其转换为答案以便可以投票。

再次感谢,
Luis

一周热门 更多>