点击此处---> 群内免费提供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。
有什么想法吗?
预先感谢
路易斯
首先,我在ON子句中使用NOT没问题。 您的ABAP版本是什么(我的版本是7.4):
感谢您的回答。 不幸的是,我们在ABAP版本(7.00)上处于黑暗时代,并且编译器消息非常清楚,在使用ON子句时不允许NOT或OR的事实:
用户需要检查特定范围(甚至可以是一个范围,例如5到5)与Z表中的另一个范围(例如4到7)不一致。 让我尝试您的代码,然后再发表评论。 另外,如Sandra所写,请将其转换为答案以便可以投票。
再次感谢,
Luis
在7.0中 ,也许可以使用技巧在client列上进行联接(如果不存在,则添加该列),使用CLIENT SPECIFIED字词指定客户端,然后将所有当前联接条件推送到WHERE子句中。
Sandra Rossi
Idk我做了什么更改,但 有人照常提及我的名字时,通知将不起作用。
路易斯·罗德里格斯
在那种情况下,我认为您可以稍作更改,导致from_date <= to_date,因此to_date仅需要彼此不同:
OR,自7.40 SP08-> cf 版本7.40 SP08中的ABAP SQL-删除了限制
一周热门 更多>