Поддержка с присоединением к таблицам. (Новое в Oracle Apex) - PullRequest
0 голосов
/ 11 декабря 2019

Привет. Я пытаюсь присоединить столбец «Имя клиента» к столбцу контракта, используя приведенный ниже код. Но это дает мне ошибку, которую я не понимаю.

Ошибка:

Region → Contract → Source → SQL Query ORA-06550: line 5, column 28: ORA-00942: table or view does not exist

SQL:

select CONTRACT_NO,
       CUSTOMER_CODE,
       START_DATE,
       END_DATE
  from CONTRACT INNER JOIN CUSTOMER
ON Contract.code = Customer.name

[enter image description here

enter image description here

Ответы [ 2 ]

0 голосов
/ 11 декабря 2019

Я думаю, что в одном из имен столбцов есть пробел. Пожалуйста, опубликуйте определение столбца с помощью команды DESC. Если бы были пробелы, вам нужно было бы ссылаться на такой столбец с кавычками по всему коду, который на самом деле не идеален для использования. Oracle не рекомендует заключать в кавычки идентификаторы, поэтому, пожалуйста, не допускайте места в именах столбцов. Используйте псевдоним, чтобы указать имя столбца в операторе выбора, а также использовать согласованные имена столбцов в запросе. Это поможет в обслуживании кода и улучшит читабельность кода.

Ниже приведен небольшой фрагмент кода, который я попробовал для вашей справки.

-- Create tables
CREATE TABLE customer(
"customer code" VARCHAR2(10),
"customer name" VARCHAR2(50),
address         VARCHAR2(100),
postcode        VARCHAR2(10),
telephone       VARCHAR2(10));


CREATE TABLE contract(
"contract no"     VARCHAR2(10), 
"customer code"   VARCHAR2(10), 
"start date"      DATE,
"end date"        DATE
);

-- Populate values
INSERT INTO customer
values ('4188','Mrs Alma Levy','"Ap #739-3930"','FA93 6JF','0000000000');

INSERT INTO contract
VALUES('08/4469','4188','15-DEC-2008','14-DEC-2009');

-- Query data
SELECT con."contract no", cust."customer code", con."start date", con."end date"
FROM contract con
INNER JOIN customer cust
ON con."customer code" = cust."customer code";

OUTPUT:
contract no   customer code  start dat end date 
------------- -------------- --------- ---------
08/4469       4188           15-DEC-08 14-DEC-09

Также см. Другую версию этого запроса без пробелов вИмена столбцов в вашем другом вопросе «Поддержка оператора объединения SQL»:)

Счастливое кодирование

HTH

0 голосов
/ 11 декабря 2019

Насколько я понимаю, вам нужны текущие столбцы, а также столбец для имени из другой таблицы.

select co.CONTRACT_NO,
       co.CUSTOMER_CODE,
       co.START_DATE,
       co.END_DATE,
       cu.name
  from CONTRACT co
 INNER JOIN CUSTOMER cu
    ON co.code = cu.name;

Это похоже на код, который должен работать, но вы должны проверить, что все столбцы существуютв таблице они вам нужны, и эти co.code и cu.name на самом деле имеют одинаковые значения.

А также, для будущих вопросов, тег является oracle-apex, я изменил его для вас на этот раз,Тег apex - это не связанная вещь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...