У меня есть две таблицы:
ЦЕНА
дата тикера закрыта
AAPL 3/20/2019 $ 100
AAPL 21.03.2009 $ 101.5
AAPL 3/22/2019$ 106,5
GOOG 3/20/2019 $ 100
GOOG 3/21/2019 $ 130
GOOG 22.03.2009 $ 110
MSFT 3/03/2019 $ 184,5
MSFT 3/03/2019$ 188,5
MSFT 22.03.2009 $ 210
IBM 3/03/2019 $ 72
IBM 3/21/2019 $ 70
IBM 3/22/2019 $ 10
STOCK
обмен тикерами
AAPL NASDAQ
GOOG NASDAQ
MSFT NASDAQ
IBM NYSE
, и я хочу вернуть тикер, который находится в 'NYSE' сНаибольший рост цены закрытия с 2019-03-20 до 2019 03-21.У меня есть:
SELECT DISTINCT T.ticker
FROM PRICE T
WHERE T.ticker IN SELECT D1.ticker, MAX(D1.close-D2.close)
FROM PRICE D1, PRICE D2, STOCK S
WHERE S.exchange='NYSE' AND D1.date = '2019-03-21' AND D2.date = '2019-03-20' AND D1.ticker = D2.ticker GROUP BY D1.ticker)
GROUP BY T.ticker;
Но он возвращает 'ОШИБКА 1064 (42000): у вас ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с 'SELECT D1.ticker, MAX (D1.close-D2.close) ОТ ЦЕНЫ D1, ЦЕНЫ D2, СТОК S ГДЕ' в строке 1 '
IBM должна вернуться в качестве вывода, поскольку это единственный тикер на NYSE.
Я совершенно новичок в SQL, и мы будем благодарны за любые предложения:)