选择最近 30 天内的行
Selecting rows within last 30 days
我有一个 select 语句来获取参考订单,但现在我需要将结果限制在过去 30 天的范围内,但我不知道该怎么做.
SELECT
*
FROM AFKO
WHERE AFKO~PLNBEZ = @reference
AND DATEDIFF( DAY, AFKO~GLTRP, @sy-datum ) >= -30
ORDER BY AFKO~GLTRP DESCENDING
INTO TABLE @it_afko.
我看过 DATEDIFF 可以进行运算,但 SAP 说该函数未知。
我正在尝试直接使用 - 运算符:
SELECT
*
FROM AFKO
WHERE AFKO~PLNBEZ = @reference
AND AFKO~GLTRP - @sy-datum >= -30
ORDER BY AFKO~GLTRP DESCENDING
INTO TABLE @it_afko.
但是 SAP 说只能在算术表达式中使用初等算术类型。 AFKO~GLTRP 类型无效
我怎样才能得到差额?
在 opensql 中使用旧版本之前,您需要准备计算日期,如下例所示。
DATA: lv_date TYPE sy-datum,
reference TYPE afko-plnbez,
it_afko TYPE TABLE OF afko.
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
date = sy-datum
days = 30
months = 0
signum = '-'
years = 0
IMPORTING
calc_date = lv_date.
SELECT *
FROM afko
INTO TABLE @it_afko
WHERE afko~plnbez = @reference
AND afko~gltrp >= @lv_date
ORDER BY afko~gltrp DESCENDING.
只需声明一个字段并相应地计算日期:
DATA(lv_date_minus_30) = sy-datum - 30.
SELECT ...
WHERE ... gltrp >= lv_date_minus_30
我有一个 select 语句来获取参考订单,但现在我需要将结果限制在过去 30 天的范围内,但我不知道该怎么做.
SELECT
*
FROM AFKO
WHERE AFKO~PLNBEZ = @reference
AND DATEDIFF( DAY, AFKO~GLTRP, @sy-datum ) >= -30
ORDER BY AFKO~GLTRP DESCENDING
INTO TABLE @it_afko.
我看过 DATEDIFF 可以进行运算,但 SAP 说该函数未知。 我正在尝试直接使用 - 运算符:
SELECT
*
FROM AFKO
WHERE AFKO~PLNBEZ = @reference
AND AFKO~GLTRP - @sy-datum >= -30
ORDER BY AFKO~GLTRP DESCENDING
INTO TABLE @it_afko.
但是 SAP 说只能在算术表达式中使用初等算术类型。 AFKO~GLTRP 类型无效
我怎样才能得到差额?
在 opensql 中使用旧版本之前,您需要准备计算日期,如下例所示。
DATA: lv_date TYPE sy-datum,
reference TYPE afko-plnbez,
it_afko TYPE TABLE OF afko.
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
date = sy-datum
days = 30
months = 0
signum = '-'
years = 0
IMPORTING
calc_date = lv_date.
SELECT *
FROM afko
INTO TABLE @it_afko
WHERE afko~plnbez = @reference
AND afko~gltrp >= @lv_date
ORDER BY afko~gltrp DESCENDING.
只需声明一个字段并相应地计算日期:
DATA(lv_date_minus_30) = sy-datum - 30.
SELECT ...
WHERE ... gltrp >= lv_date_minus_30