将数据从标准DBtable插入另一个DBTtable

2020-08-20 22:19发布

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

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


大家好,

我需要将2个标准表(KNA1和adrc)中的数据插入到ZDBTable中。

zdbtable只有4列(kna1中有3列,adrc中有1列)。

我需要知道推荐的方法。 使用带或不带标题的内部表...

PS:我是ABAP的初学者。

谢谢。

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

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


大家好,

我需要将2个标准表(KNA1和adrc)中的数据插入到ZDBTable中。

zdbtable只有4列(kna1中有3列,adrc中有1列)。

我需要知道推荐的方法。 使用带或不带标题的内部表...

PS:我是ABAP的初学者。

谢谢。

付费偷看设置
发送
10条回答
Cikesha
1楼 · 2020-08-20 23:18.采纳回答

嗨,

您可以使用类似这样的选择(根据自己的需要):

选择c〜kunnr,c〜name1,a〜country
   来自kna1 as c
   INNER JOIN adrc AS a ON a〜addrnumber = c〜adrnr
   插入表@DATA(lt_customer_data)
   从〜=的<〜@ sy-datum
   和a〜date_to> = @ sy-datum。

我不建议将此数据复制到新的z表中,因为您将存储两次数据(并且您可能会遇到 实际数据与z表之间存在差异。

如果要创建单独的z表的唯一原因是易于访问数据,则建议创建数据库视图或 CDS视图(如果有CDS,这是最好的方法。)这样就不必两次存储数据,不必担心差异,并且可以轻松访问所需的数据。 您可以使用上面的选择来创建视图)

如果您打算将数据读入内部表中,那么您就不应再使用标题行,因为这些标题行已经过时了。

最诚挚的问候,

Geert-Jan Klaps

昵称总是被占用
2楼-- · 2020-08-20 23:03

唯一的一栏是mandt。

应该将其添加到"选择"中吗?

ZJXianG
3楼-- · 2020-08-20 23:04

嗨,扬,

我应该在" @DATA(lt_customer_data)"中添加什么?

这是ztable的线型吗? 像这样:

 types:line_type的开头,
           像ztclient99-client这样的客户端,
           像ztclient99-client_id一样的client_id,
           name_last就像ztclient99-name_last一样,
           name_first就像ztclient99-name_first一样,
           类似ztclient99-addrnumber的addrnumber,
         line_type的结尾。

这是我的代码,它可以工作,但是我得到警告:

工作区" LT_CLIENT99"具有比所选更多的字段。

数据:ztclient99的lt_client99类型表。

 选择k〜kunnr作为client_id k〜name1作为name_last k〜name2作为name_first a〜addrnumber作为addrnumber
   最多220行
   来自kna1 as k
   内部连接adrc作为
   在a〜addrnumber = k〜adrnr上
   到表lt_client99的对应字段中
   其中a〜addrnumber = k〜adrnr。

 如果sy-subrc = 0。
   从表lt_client99中插入ztclient99。
 endif。

一周热门 更多>