ABAP+如果在join的时候需要表1的字段某几位等于表2的字段的某几位,需要怎么做?

使用substring,

代码:SUBSTRING( C~KUNAG,5,6 ) = SUBSTRING( A~KUNNR,5,6 )

表明:C表的KUNAG字段的第5位开始,取6个字符,与C表的KUNNR字段的第5位开始,取6个字符,所对应的值相同。

一般可以用于需要连接的两个表中,一个表有前导零,另一个表没有前导零的时候使用,就可以不用去LOOP里面给其中一个表添加前导零了,但是没有试过效率哪个更高。

比如GT_ALV表里面没有前导零,后台表KNVV里面有前导零,这时不想去补充前导零,想直接在SELECT的时候截取或者补充前导零,如何做呢?

下面是完整的代码示例:

复制代码
SELECT DISTINCT C~KUNAG,A~BZIRK ,B~BZTXT
      FROM KNVV AS A
      RIGHT JOIN @GT_ALV AS C ON ( SUBSTRING( C~KUNAG,5,6 ) = SUBSTRING( A~KUNNR,5,6 )
      OR C~KUNAG = SUBSTRING( A~KUNNR,5,6 ) )
      LEFT JOIN T171T AS B ON A~BZIRK = B~BZIRK
      WHERE A~VKORG = @P_BUKRS
*      AND B~SPRAS = @SY-LANGU
      INTO TABLE @DATA(LT_T171T_INNER).

因为GT_ALV里面既有一些有前导零又有一些没前导零,所以用了一个OR

另外,写了一篇比较全面的SAP select查询的笔记,可移步查看:

【案例总结】简直绝了------非常全面的SELECT总结-CSDN博客

相关推荐
广州灵眸科技有限公司6 小时前
4G 模组开机自连 systemd 服务方案:基于灵眸科技EAI1106--Core-T
运维·服务器·科技
摇滚侠6 小时前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 12
java·数据库·笔记
川石课堂软件测试7 小时前
学习软件测试需掌握的一些知识
数据库·python·sql·功能测试·网络协议·mysql·http
@大迁世界7 小时前
Firefox 本地模式:localhost 再见了 ?
前端·架构
qq_401700417 小时前
Linux设备树详解
linux·运维·服务器
2501_937767168 小时前
自建 SQL 数据库定时备份踩坑复盘与落地思路
数据库·sql
刚入门的大一新生8 小时前
Linux-信号
linux·运维·服务器
silvamux_9 小时前
10款模型写种草笔记:可发布性、返工来源与成本数据缺口复盘
java·数据库·笔记
米米商聊9 小时前
同名附件为什么被 Map 覆盖?重复键与一对多索引
前端·javascript
echome88810 小时前
Python 异常处理:try、else、finally 的正确搭配
开发语言·前端·python·异常处理·编程技巧