我正在尝试从子查询与变量匹配的表中检索行。但是,似乎 WHERE 子句只允许我将所选表的字段与常量、变量或子查询进行比较。
我希望写这样的东西:
DATA(lv_expected_lines) = 5.
SELECT partner contract_account
INTO TABLE lt_bp_ca
FROM table1 AS tab1
WHERE lv_expected_lines = (
SELECT COUNT(*)
FROM table2
WHERE partner = tab1~partner
AND contract_account = tab1~contract_account ).
但显然这个选择将我的局部变量视为一个字段名,它给了我错误“未知列名“lv_expected_lines”,直到运行时,你不能指定一个字段列表。”
但在标准 SQL 中,这是完全可能的:
SELECT PARTNER, CONTRACT_ACCOUNT
FROM TABLE1 AS TAB1
WHERE 5 = (
SELECT COUNT(*)
FROM TABLE2
WHERE PARTNER = TAB1.PARTNER
AND CONTRACT_ACCOUNT = TAB1.CONTRACT_ACCOUNT );
那么如何在 RSQL / Open SQL 中复制这个逻辑呢?
如果没有办法,我可能只会编写本机 SQL 并完成它。