根据条件插入数据库表

2020-08-18 10:23发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨!我有一个选择屏幕,插入到DB...

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

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


嗨!
我有一个选择屏幕,插入到DB表中。 它有两个选项-输入带有开始时间的条目,然后输入带有结束时间的条目。 是否可以创建一种逻辑,当某人创建一个具有结束时间的条目时,它将插入到开始时间的同一表行中,而只是结束时间?
我需要将其插入到最后一个输入X表中的y = y(两个条目中的一个字段都必须为eq)。
然后定义要在何处插入哪些字段。

也许有人知道如何实现?

谢谢!

6条回答
大道至简
2020-08-18 10:38 .采纳回答

您好用户c

也许是这样吗?

参数:p_y 类型为char10强制性。
 参数:p_start TYPE数据。
 参数:p_end TYPE数据。

 选择开始。
   执行run_report。
   提交工作并等待。

 FORM run_report。
   如果p_start是INITIAL并且p_end是INITIAL。
     写:/'请提供开始或结束日期'。
     返回。  " 没事做
   万一。

   选择 *
     从ztable
     哪里y = @p_y
     ORDER BY record_count DESC"我假设有一些记录计数列
     INTO @DATA(ls_ztable)
     最多1行。
   如果sy-subrc = 0。
     如果p_start不是INITIAL。
       如果ls_ztable-end_date是INITIAL。
         写:/"您应提供最后一条记录的结束日期"。
         返回。
       其他。
         最后一条记录已关闭
         使用ls_ztable-record_count执行create_record。
       万一。

       返回。
     万一。

     如果p_end不是INITIAL。
       如果ls_ztable-end_date不是INITIAL。
         写:/'上一个记录已关闭。 创建一个新的。
         返回。
       其他。
         ls_ztable-end_date = p_end。
         从ls_ztable修改ztable。
       万一。
     万一。
   其他。
     "找不到最后的记录
     创建新的,但只有在提供开始日期的情况下
     如果p_start不是INITIAL。
       使用0执行PERFORM create_record。
     其他。
       写:/'没有找到最后的记录'。
     万一。
   万一。
 ENDFORM。

 使用iv_record_count类型TYPE FORM create_record。
   数据:
     ls_ztable TYPE ztable。

   检查p_start是否不初始化。

   ls_ztable-y = p_y。
   ls_ztable-record_count = iv_record_count + 1。
   ls_ztable-start_date = p_start。
   从ls_ztable插入到ztable中。
 ENDFORM。

我的假设是表中有一些记录计数键列。

我可以是简单的整数列,数字或日期。 您必须先看一下并分别修改代码。

注意,

Mateusz

一周热门 更多>