Как правильно написать подзапросы, которые используют математические функции для вычисления столбца в лице «Error Code 1248» Производные таблицы должны иметь свои собственные Alises? - PullRequest
0 голосов
/ 15 февраля 2019

Меня попросили в упражнении вычислить три значения из двух столбцов, List_price и discount_amount.частично моя проблема в том, что мои инстинкты программирования хотят воспрепятствовать моей способности полностью понять то, чему учат.

Может кто-нибудь показать мне, что не так с кодом, и предоставить шаблон, чтобы лучше справиться с ситуацией.

SELECT list_price, discount_percent, product_name, raw_percent,
    discount_amount, (list_price - discount_amount) AS discount_price 
FROM ( 
     SELECT discount_percent,
                    list_price,
                    (discount_percent /10) = raw_percent 
                    (list_price * raw_percent) = discount_amount    
) ORDER BY discount_price DESC LIMIT 5; 

1 Ответ

0 голосов
/ 15 февраля 2019

Производные таблицы должны иметь свои собственные псевдонимы

В MySQL есть требование, что, если вы ищете доступ к столбцам набора результатов, возвращаемых подзапросом, то подзапрос должен быть правильнос псевдонимом во внешнем запросе (даже если этот псевдоним на самом деле не используется в запросе).

Вам потребуется псевдоним подзапроса, который вы используете в предложении WHERE:

SELECT ...
FROM (
    SELECT ...
) AS some_alias
ORDER BY discount_price DESC LIMIT 5; 

Другое замечание относительно вашего запроса:

  • столбец «product_name» должен быть возвращен подзапросом, иначе он не будет доступен во внешнем запросе
  • в подзапросе отсутствует комапосле «raw_percent»
...