内部联接错误

2020-09-05 18:43发布

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

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


im tryin连接两个表,错误消息不断显示

INTO子句中的字段太少。

SPAN {font-family:" Courier New"; 字体大小:10pt; 颜色:#000000; 背景:#FFFFFF; } .L0S31 {font-style:italic; 颜色:#808080; } .L0S32 {color:#3399FF; } .L0S33 {color:#4DA619; } .L0S52 {color:#0000FF; } .L0S55 {color:#800080; } .L0S70 {color:#808080; }

报告ZSOIPQ。

类型库:slis。

表格:VBAK,
VBAP。


类型:ty_vbak的开始,
> VBELN TYPE VBELN_VA,"销售文档类型
AUART TYPE AUART,"销售文档类型
ty_vbak的结尾。

TYPE:BEGIN OF ty_vbap,
VBELN TYPE VBELN_VA,"销售文档
> POSNR TYPE POSNR_VA,"销售凭证项目
MATNR TYPE MATNR,"材料编号
ty_vbap的结尾。


数据:gt_vbak ty_vbak的类型表,
st_vbak TYPE _vbak的类型。

数据:ty_vbaP的gt_vbaP类型表,
ty_vbaP的st_vbaP类型表。

参数:vbeln的P_vbeln类型。


开始选择。
>


SELECT vbeln
posnr
matnr
从VBAP
到表gt_vbap。

SELECT vbak〜vbeln
VBAK〜AUART
> VBAP〜vbeln
VBAP〜posnr
VBAP〜matnr
从VBAK
内联接VBAP
到表gt_vbak
上VBAK〜vbeln = VBAP〜vbeln
其中auart eq 'ZQPC'和VBAK〜vbeln GE'0030000000'。


如果sy-subrc = 0.
在gt_vb处循环 aK INTO st_vbaK。
追加st_vbaK到gt_vbak。


首先
写:/10'Sales Document',
35'Sales Document Type',
65 '销售凭证项目',
100'物料编号'。
ENDAT。

WRITE:/13 ST_VBAK-vbeln,
43 ST_VBAK-auart,
72 ST_VBAP-POSNR,
90 ST_VBAP-MATNR。

ENDLOOP。

排序gt_vbap。
从gt_vbap中删除相邻的重复项。
endif。

非常感谢您的帮助。


谢谢

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

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


im tryin连接两个表,错误消息不断显示

INTO子句中的字段太少。

SPAN {font-family:" Courier New"; 字体大小:10pt; 颜色:#000000; 背景:#FFFFFF; } .L0S31 {font-style:italic; 颜色:#808080; } .L0S32 {color:#3399FF; } .L0S33 {color:#4DA619; } .L0S52 {color:#0000FF; } .L0S55 {color:#800080; } .L0S70 {color:#808080; }

报告ZSOIPQ。

类型库:slis。

表格:VBAK,
VBAP。


类型:ty_vbak的开始,
> VBELN TYPE VBELN_VA,"销售文档类型
AUART TYPE AUART,"销售文档类型
ty_vbak的结尾。

TYPE:BEGIN OF ty_vbap,
VBELN TYPE VBELN_VA,"销售文档
> POSNR TYPE POSNR_VA,"销售凭证项目
MATNR TYPE MATNR,"材料编号
ty_vbap的结尾。


数据:gt_vbak ty_vbak的类型表,
st_vbak TYPE _vbak的类型。

数据:ty_vbaP的gt_vbaP类型表,
ty_vbaP的st_vbaP类型表。

参数:vbeln的P_vbeln类型。


开始选择。
>


SELECT vbeln
posnr
matnr
从VBAP
到表gt_vbap。

SELECT vbak〜vbeln
VBAK〜AUART
> VBAP〜vbeln
VBAP〜posnr
VBAP〜matnr
从VBAK
内联接VBAP
到表gt_vbak
上VBAK〜vbeln = VBAP〜vbeln
其中auart eq 'ZQPC'和VBAK〜vbeln GE'0030000000'。


如果sy-subrc = 0.
在gt_vb处循环 aK INTO st_vbaK。
追加st_vbaK到gt_vbak。


首先
写:/10'Sales Document',
35'Sales Document Type',
65 '销售凭证项目',
100'物料编号'。
ENDAT。

WRITE:/13 ST_VBAK-vbeln,
43 ST_VBAK-auart,
72 ST_VBAP-POSNR,
90 ST_VBAP-MATNR。

ENDLOOP。

排序gt_vbap。
从gt_vbap中删除相邻的重复项。
endif。

非常感谢您的帮助。


谢谢

付费偷看设置
发送
7条回答
灬番茄
1楼-- · 2020-09-05 19:16
"我仅纠正代码的语法,但使用带有动态声明的新方法并重新执行程序,

 TYPE-POOLS:slis。

 表格:vbak,vbap。

 类型:ty_vbak的开头,"将所有选择字段并入内部关节
         vbeln TYPE vbak-vbeln,
         posnr TYPE vbap-posnr,
         auart TYPE vbak-auart,
         matnr TYPE vbap-matnr,
 ty_vbak结束。

 类型:开始于ty_vbap,
         vbeln TYPE vbeln_va,"销售文档
         posnr TYPE posnr_va,"销售凭证项目
         matnr TYPE matnr,"材料编号
 ty_vbap结束。


 数据:ty_vbak的gt_vbak类型表,
        st_vbak类型ty_vbak。

 数据:ty_vbap的gt_vbap类型表,
 st_vbap类型ty_vbap。

 参数:p_vbeln TYPE vbeln。

 选择开始。
   SELECT vbeln
   posnr
   物质
   从vbap
   表gt_vbap的对应字段。  "当您选择不带顺序进入内部表时,必须是表的对应字段
   选择vbak〜vbeln
          vbak〜auart
          vbap〜vbeln
          vbap〜posnr
          vbap〜matnr
   进入表gt_vbak的对应字段"必须在不对内部表进行序列选择的情况下选择表的对应字段
   来自vbak
   内联接vbap ON vbak〜vbeln = vbap〜vbeln
                     在哪里vbak〜auart EQ'ZQPC'"您错过了vbak〜auart
                     和vbak〜vbeln GE'0030000000'。


     如果sy-subrc = 0。
       在gt_vbak处循环进入st_vbak。
         附加st_vbak至gt_vbak。

         首先。
           写:/10'销售文档',
           35"销售单据类型",
           65'Sales Document Item',
           100'材料编号'。
         ENDAT。

         写:/13 st_vbak-vbeln,
         43 st_vbak-auart,
         72 st_vbap-posnr,
         90 st_vbap-matnr。

       结局。

       排序gt_vbap。
       从gt_vbap删除相邻的重复项。
     万一。
  
Alawn_Xu
2楼-- · 2020-09-05 19:18

嗨,

使用动态声明:

选择vbak〜vbeln,
vbak〜auart,
vbap〜vbeln作为itemno,
vbap〜posnr,
vbap〜matnr
插入表@data(gt_vbak)
从vbak
内联接vbap
上vbak〜vbeln = vbap〜vbeln
auart EQ'ZQPC'和vbak〜vbeln GE'0030000000'。

昵称总是被占用
3楼-- · 2020-09-05 19:16

选择
> VBAP〜vbeln
VBAP〜posnr
VBAP〜matnr
从VBAK
内联接VBAP
到表gt_vbak
上VBAK〜vbeln = VBAP〜vbeln
其中auart eq 'ZQPC'和VBAK〜vbeln GE'0030000000'。

如上更改select语句,以消除该错误。

My梦
4楼-- · 2020-09-05 19:17

不是。 那也将转储。

5楼-- · 2020-09-05 19:22

您为内部表声明的字段数与在SQL中选择的字段数不同。 如果您不需要某些字段,请将其从SQL中删除或更改内部表的声明; 如果内部表所需的字段数> SQL选择列表中的字段数,则可以使用INTO CORRESPONDING。

土豆飞人
6楼-- · 2020-09-05 19:18

从不假定有人可以通过阅读正确的代码来理解自己的错误 (这就是为什么应该注释复杂的代码,并且如果OP提出问题的原因是因为对他来说有些复杂)。 如果您不重复代码,那么还可以避免重复未发现的最终错误(如Uwe提到的大错误)。

一周热门 更多>