A company has a record of it's customers and their orders. I am writing a query to get the names of those customer(s) and order(s), who have the maximum price order within the first ten years of the first order. This select query is working in SQL Server but I am getting an error in MySQL
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1 C.NAME, O.PRICE, O.ORDER_DATE FROM ORDERS O, CUSTOMERS C WHERE O.PRICE = (SEL' at line 1
CREATE TABLE CUSTOMERS(ID varchar(10), NAME varchar(50), ORDER_ID varchar(20));
INSERT INTO CUSTOMERS VALUES('1','Tom','abcd');
INSERT INTO CUSTOMERS VALUES('52','Lucy','fghi');
INSERT INTO CUSTOMERS VALUES('43','Frank','klmn');
INSERT INTO CUSTOMERS VALUES('64','Jane','opqr');
INSERT INTO CUSTOMERS VALUES('565','Robert','xyz');
CREATE TABLE ORDERS(ID varchar(20), PRICE int, ORDER_DATE date);
INSERT INTO ORDERS VALUES('abcd', 100, '1987-10-02');
INSERT INTO ORDERS VALUES('fghi', 200, '1987-10-06');
INSERT INTO ORDERS VALUES('klmn', 20, '1998-10-22');
INSERT INTO ORDERS VALUES('opqr', 50, '1988-10-14');
INSERT INTO ORDERS VALUES('xyz', 300, '1999-10-02');
INSERT INTO ORDERS VALUES('fghi', 250, '1995-10-06');
INSERT INTO ORDERS VALUES('klmn', 40, '1993-11-22');
INSERT INTO ORDERS VALUES('abcd', 70, '1989-12-14');
INSERT INTO ORDERS VALUES('klmn', 590, '1999-01-22');
INSERT INTO ORDERS VALUES('opqr', 540, '1988-10-14');
INSERT INTO ORDERS VALUES('fghi', 540, '1986-10-14');
INSERT INTO ORDERS VALUES('abcd', 470, '1979-02-14');
SELECT C.NAME, O.PRICE
FROM ORDERS O, CUSTOMERS C
WHERE O.PRICE =
(
SELECT MAX(PRICE) FROM ORDERS
WHERE ORDER_DATE BETWEEN
(SELECT TOP 1 ORDER_DATE FROM ORDERS ORDER BY ORDER_DATE)
AND
(SELECT TOP 1 DATEADD(year, 10, ORDER_DATE) FROM ORDERS ORDER BY ORDER_DATE)
)
AND C.ORDER_ID = O.ID ORDER BY O.ORDER_DATE;
TOP