Excel入侵控件中的SQL错误

Excel入侵控件中的SQL错误,sql,exact-online,invantive-control,invantive-sql,Sql,Exact Online,Invantive Control,Invantive Sql,这是用于Excel的入侵控制 什么可能导致第二个CREATE表出错 CREATE TABLE niveau1@inmemorystorage AS SELECT ID , Code , AddressLine1 , Name , Parent FROM Accounts WHERE ID=$P{P_ACCOUNTID} CREATE TABLE niveau2@inmemorystorage AS SELECT ID , Code ,

这是用于Excel的入侵控制

什么可能导致第二个CREATE表出错

CREATE TABLE niveau1@inmemorystorage
AS
SELECT ID
,      Code
,      AddressLine1
,      Name
,      Parent
FROM   Accounts
WHERE  ID=$P{P_ACCOUNTID}

CREATE TABLE niveau2@inmemorystorage
AS
SELECT ID
,      Code
,      AddressLine1
,      Name
,      Parent
FROM   Accounts
WHERE  Parent IN (SELECT ID FROM niveau1@inmemorystorage)

CREATE TABLE niveau3@inmemorystorage
AS
SELECT ID
,      Code 
,      AddressLine1
,      Name
,      Parent
FROM   Accounts
WHERE  Parent IN (SELECT ID FROM niveau2@inmemorystorage)

SELECT * FROM niveau1@inmemorystorage
UNION ALL
SELECT * FROM niveau2@inmemorystorage
UNION ALL
SELECT * FROM niveau3@inmemorystorage

您可能收到错误:标识符“Accounts”不明确。。您可以在必要时添加标识符

下面显示了用于精确在线帐户的工作SQL。请注意使用create或replace table而不是create table,权限在有权限时不会更改,但在必要时会先删除该表

CREATE OR REPLACE TABLE niveau1@inmemorystorage
AS
SELECT act.ID
,      act.Code
,      act.AddressLine1
,      act.Name
,      act.Parent
FROM   exactonlinerest..Accounts act


CREATE OR REPLACE TABLE niveau2@inmemorystorage
AS
SELECT act.ID
,      act.Code
,      act.AddressLine1
,      act.Name
,      act.Parent
FROM   exactonlinerest..Accounts act
join   niveau1@inmemorystorage n1
on     n1.id = act.Parent

CREATE OR REPLACE TABLE niveau3@inmemorystorage
AS
SELECT act.ID
,      act.Code 
,      act.AddressLine1
,      act.Name
,      act.Parent
FROM   exactonlinerest..Accounts act
join   niveau2@inmemorystorage n2
on     n2.id = act.Parent

SELECT * FROM niveau1@inmemorystorage
UNION ALL
SELECT * FROM niveau2@inmemorystorage
UNION ALL
SELECT * FROM niveau3@inmemorystorage

嗨,欢迎来到苏。这似乎是你的第一个问题。我建议您仔细阅读SO关于问题格式的指导原则。始终将代码包装在包装标签中。我现在是为你做的,伙计。编码快乐!您收到的错误消息是什么?请注意,结构中。。。在选择。。。当前导致在“从”中的每一行上计算IN后的零件。入侵SQL目前对相关子查询和不相关子查询没有区别。出于性能原因,您可能希望将其重写为联接而不是in。错误消息是:第11行第0列“CREATE”上的语法错误:不匹配的输入“CREATE”应为{,'*',GROUP,INTERSECT,减号C,ORDER,UNION,AND,或“-”,“+”,“/”,CONCAT_OP}@LeoH错误“Syntax error on line 11”和“create”信号表明您已将create table niveau1和niveau2一批发送到SQL引擎。您可以批处理SQL语句,但需要使用“;”进行拆分而不是空白。或者删除两个CREATETABLE语句之间的空白。这对你合适吗?下一个问题的答案实际上是最好的。使用这种语法,我得到了很好的结果。