Разница между 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. Все хорошо!