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日期字段比较和查询最年轻的字段[关闭]的主要内容,如果未能解决你的问题,请参考以下文章