Разница между SQL Fiddle и Oracle NOVA

У меня есть следующие таблицы:

CREATE TABLE CUSTOMERS
(customerID     INT     PRIMARY KEY,
customerFullName        VARCHAR(20) NOT NULL);

CREATE TABLE VEHICLES
(vehicleVIN     VARCHAR(25) PRIMARY KEY,
vehicleMake     VARCHAR(15) NOT NULL);

CREATE TABLE SALES
(saleID         INT     PRIMARY KEY,
customerID      INT,
vehicleVIN      VARCHAR(25));
CONSTRAINT SALES_FK1 FOREIGN KEY (customerID) REFERENCES CUSTOMERS(customerID),
CONSTRAINT SALES_FK2 FOREIGN KEY (vehicleVIN) REFERENCES VEHICLES(vehicleVIN));

И построил следующий запрос для запуска этих таблиц:

SELECT VEHICLES.vehicleMake, CUSTOMERS.customerFullName
FROM SALES
JOIN CUSTOMERS on SALES.customerID = CUSTOMERS.customerID
    JOIN(
        SELECT SALES.vehicleVIN, VEHICLES.vehicleMake
        FROM SALES
          JOIN VEHICLES ON SALES.vehicleVIN = VEHICLES.vehicleVIN
          GROUP BY SALES.vehicleVIN, VEHICLES.vehicleMake
          HAVING COUNT(SALES.vehicleVIN) >= ALL
          (SELECT COUNT(SALES.vehicleVIN)
             FROM SALES
               INNER JOIN VEHICLES ON SALES.vehicleVIN=VEHICLES.vehicleVIN
               GROUP BY VEHICLES.vehicleMake))
      VEHICLES ON SALES.vehicleVIN = VEHICLES.vehicleVIN
      ORDER BY CUSTOMERS.customerFullName;

Когда я запускаю это в SQL Fiddle, он отлично работает и обеспечивает правильный вывод (один столбец, который отображает наиболее совершенный приобретенный vehicleMake, и другой столбец, который отображает customerFullName всех, кто приобрел это транспортное средство).

Когда я запускаю его в NOVA (Oracle), он просто говорит: "Нет выбранных строк" ​​Есть ли разница в синтаксисе между ними? Нужно ли менять свой код? Спасибо!

1 ответ

Решение

Ответил сам. Я извлекал данные с небольшим расхождением в моих операторах вставки между SQL Fiddle и NOVA. Проблема была по моей вине, и, насколько я могу судить сейчас, все работает так, как должно.

В моих операторах вставки в SQL-скрипте повторно использовалось несколько номеров vehicleVIN, что способствовало успешности написанного мной запроса, однако этот запрос неверен для того, что я пытаюсь выполнить. Открыл еще один вопрос, чтобы обсудить этот конкретный вопрос.

Итог: я не верю, что они представляют собой какие-либо существенные различия между синтаксисом DB NOVA и синтаксисом SQL Fiddle. Все хорошо!

Другие вопросы по тегам