0

我正在使用 ingres 10S SQL,并尝试在嵌入式 SQL C 程序中编写以下 SQL 语句。它可以作为独立的 SQL 脚本正常工作,但编译 eSQL 程序会出错

%% Error in file localtask.sc, Line 498: E_EQ0244 Syntax error on 'union'.

INSERT INTO nr301_tab2 (authority_id)
SELECT a.authority_id
FROM nrremdets a, nrstatus_hierarchy z
WHERE a.authority_id = z.authority_id
UNION
SELECT a.authority_id
FROM nrsumsamts a, nrsumsdets b
WHERE a.authority_id = b.authority_id;

(第 498 行是该UNION行)该UNION子句有什么问题?

4

1 回答 1

1

只需稍微调整一下查询,它应该可以工作。试试这个:

INSERT INTO nr301_tab2 (authority_id)
SELECT authority_id
FROM
    (SELECT a.authority_id
     FROM nrremdets a, nrstatus_hierarchy z
     WHERE a.authority_id = z.authority_id
     UNION
     SELECT a.authority_id
     FROM nrsumsamts a, nrsumsdets b
     WHERE a.authority_id = b.authority_id) Result

这个想法是合并结果集,这将创建一个新的结果集,以便在表中插入一次。通过添加括号,我们确保发生这种情况。

于 2015-06-10T14:36:50.803 回答