Abap日期字段比较和查询最年轻的字段[关闭]

Posted

技术标签:

【中文标题】Abap日期字段比较和查询最年轻的字段[关闭]【英文标题】:Abap date fields comparison and query the youngest field [closed] 【发布时间】:2022-01-18 15:02:10 【问题描述】:

我又需要帮助了。 我有一个数据库,其中有 3 个不同的日期字段。 Dateto、validto 和 delivdate。 在我的abap 报告中有一个select 语句。我必须相互比较这 3 个日期字段,并找到迄今为止最晚的日期。然后我必须使用按这个 fkunded 日期过滤的 select 进行查询。 你能给我建议我该怎么做吗? 例如,我应该在选择查询中找到正确的日期,还是必须在单独的逻辑中找到日期然后选择?

【问题讨论】:

【参考方案1】:

如果我理解正确,您想从来自数据库的行中查找最大日期。然后,您将这些字段用于另一个选择查询。

   SELECT field1, field2,
     CASE WHEN 1 EQ 1 THEN sy-datum "tricky way for extra field
     END AS max_date
     FROM db_table
     INTO TABLE @DATA(lt_lines).

    "A simple find the greatest number example
    LOOP AT lt_lines ASSIGNING FIELD-SYMBOL(<lfs_line>).
      lv_max_date = <lfs_line>-dateto.

      IF lv_max_date LT <lfs_line>-validto.
        lv_max_date = <lfs_line>-validto.
      ENDIF.
    
      IF lv_max_date LT <lfs_line>-delivdate.
        lv_max_date = <lfs_line>-delivdate.
      ENDIF.
      <lfs_line>-max_date = lv_max_date.
    ENDLOOP.
    
    "You can use lt_lines for another query anymore..

【讨论】:

嘿,谢谢。你是对的,我必须选择来自 db 表的 3 个日期。在比较 3 之后,我会将其保存在另一个选择查询中使用的变量中。 如果这个答案对你来说足够了,你应该标记为接受。

以上是关于Abap日期字段比较和查询最年轻的字段[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

请教ABAP性能优化-关于MSEG

比较 MongoDB 中的两个日期字段

Oracle两个日期类型字段怎么比较大小

Oracle两个日期类型字段怎么比较大小

Codeigniter 日期比较 - 大于或小于日期时间字段不起作用

从firestore查询数据时,如何将保存的字符串格式的日期与当前日期进行比较?