问题加入BKPF和BSEG

2020-09-17 03:34发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我遇到以下问题: ...

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

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


你好

我遇到以下问题:

我使用以下代码创建了一个Programm:

 EXEC SQL PERFORMING loop_output。
  选择b1.BLART,b1.BELNR,b1.BUKRS,b1.BUDAT,b1.XBLNR,b1.STGRD
  INTO:从BKPF b1开始
  内部联接
 (
 SELECT BLART,BUKRS,XBLNR
 从BKPF
 在哪里BUKRS =:BUKREIS
 AND(BUDAT> =:VON或:VON ='00000000')
 AND(BUDAT <:BIS OR:BIS ='00000000')
 AND BLART ='RG'
 AND LENGTH(TRIM(XBLNR))> 1
 AND STGRD =''
 按BLART,BUKRS,XBLNR分组
 拥有计数(*)> 1
 )b2
  开1 = 1
  AND b1.BLART = b2.BLART
  与b1.BUKRS = b2.BUKRS
  与b1.XBLNR = b2.XBLNR
  ORDER BY b1.BLART,b1.BELNR,b1.BUKRS,b1.BUDAT,b1.XBLNR
 ENDEXEC。
 

我想向表BSEG添加另一个联接。 添加JOIN后,将发生错误,例如"数据库中不存在对象(表,视图索引等)"。 所以我写了一个小测试:

 REPORT ZFI_TEST。

 资料:wa的BEGIN OF
 BUKRS型BSEG-BUKRS,
 BELNR类型BSEG-BELNR,
  wa的结尾。

 执行SQL PERFORMING loop_output。
  选择b1.BUKRS,b1.BELNR
  INTO:wa
  来自bkpf b1
 ENDEXEC。

 FORM loop_output。
  写:/wa-BELNR,'',
  wa-BUKRS。

 ENDFORM。
 

如果我参考表BKPF,则一切正常。 只是将表名更改为BSEG会给我一个错误。

我该怎么做才能加入BSEG表,或者如何通过仅将SUBSELECT分组来使用ABAP和SELFJOIN解决问题。

谢谢。

Joachim

4条回答
Violet凡
2020-09-17 03:56

同意。

BSEG是一个"聚集表"(在论坛上搜索以获取更多信息),这意味着它在数据库中不存在。 如果我没有记错的话,实际的表是RFBLG,但是属性字段是通过SAP算法压缩的。

因此,您将无法使用本机SQL访问它们。 而是使用Open SQL。

PS:BSEG的许多字段在索引表BSID,BSIS,BSIK,BSAD等中都是重复的,它们不是聚簇表。

一周热门 更多>