我正在研究ABAP计划 . 我有一个带有ZFIELD和ZVALUE对的过滤表(例如“country”“DE”,“date”“Q1.2014”) . 我需要查询该表并找到与我的过滤条件对应的对的CID . 用一个例子说明这一点:
表ZFILTER(CID,FID,ZFIELD,ZVALUE):
1, 1, "country", "DE"
1, 2, "country", "SE"
1, 3, "date", "Q1.2014"
我的前端过滤条件:
country=DE, date=Q1.2014
我现在想要找到过滤条件匹配的所有CID,所以在这种情况下,country是DE的匹配,date是Q1.2014的匹配,预期的返回值是CID = 1 .
我尝试过以下查询:
SELECT DISTINCT CID
FROM ZFILTER INTO TABLE LT_COMFILT
WHERE ( ZFIELD = 'country' AND ZVALUE = 'DE' )
AND
( ZFIELD = 'date' AND ZVALUE = 'Q1.2014' )
然而,显然,由于陈述之间的AND,这给了我没有结果 . 我猜我将不得不创建某种子查询,但我在ABAP中苦苦挣扎,因为它超出了我的Open SQL专业知识 .
有没有更好的方法来完成这项任务,或者有没有人输入如何完成它(也许有一个语法正确的例子在Open SQL中进行子查询)?我希望很清楚我想要完成什么 .
提前致谢!
3 回答
如果我理解你的问题,那正是ABAP Open SQL中存在
for all entries
成语的动机:为什么不能在ABAP层而不是DB层中处理这个问题? ZFILTER表中预计有多少条记录?如果它不太苛刻,通过首先获取表中的所有数据并编写逻辑,更容易处理abap via循环 .
我想这会给你你所追求的 .