Ошибка SQL в Invantive Control для Excel
Это для Invantive Control для Excel.
Что может быть причиной ошибки на втором CREATE TABLE?
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
1 ответ
Решение
Возможно, вы получили сообщение об ошибке: "Идентификатор" Счета "неоднозначен". Вы можете добавить идентификатор, где это необходимо.
Рабочий SQL для учетных записей Exact Online показан ниже. Пожалуйста, обратите внимание на использование create or 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