问题描述
希望您能帮助我。
我有2个表(例如T1,T2)。
T1: ID(密钥), maktx, ...
T2: ID(密钥), 标签名(键), 字段名称(键), 字段值, ...
SELECT *
FROM T1
JOIN T2 on T1~id = T2~id
INTO CORRESPONDING FIELDS OF table <et_result>
WHERE T1~id IN ir_id[]
AND ( T2~fieldname = 'MATNR' AND T2~fieldvalue IN ir_matnr[] )
AND ( T2~fieldname = 'WERKS' AND T2~fieldvalue IN ir_werks[] )
T1和T2具有不同的结构,但是共享相同的ID。
我的问题是,对于T1中的所有条目,我都需要T2中的所有字段值,但是我不知道如何解决此问题,因为我还必须检查T2中的字段名。
P.S。我不是该系统的创建者,不能对其进行任何结构上的更改,而只是尝试解决此问题。
任何帮助将不胜感激。
解决方法
一个字段不能同时具有两个不同的值(MATNR和WERKS),因此必须将AND条件更改为OR:
SELECT *
FROM T1
JOIN T2 on T1~id = T2~id
INTO CORRESPONDING FIELDS OF table <et_result>
WHERE T1~id IN ir_id[]
AND ( ( T2~fieldname = 'MATNR' AND T2~fieldvalue IN ir_matnr[] )
OR ( T2~fieldname = 'WERKS' AND T2~fieldvalue IN ir_werks[] ) ).