Как повторно использовать динамический столбец при вычислении другого столбца в MySQL?

#sql #mysql

#sql #mysql

Вопрос:

У меня есть такой запрос:

 SELECT 
  IF(daycode=1,(SELECT...),(SELECT...)) AS weekavg,
  (SELLOFF1 / weekavg) AS procent
FROM .....
  

он сообщает мне: Unknown column 'weekavg' in 'field list' это происходит после того, как я добавил разделение, до этого все работало нормально.

Ответ №1:

Вы можете использовать вложенный запрос:

 SELECT (selloff1 / weekavg) AS procent
FROM (
  SELECT 
    selloff1, IF(daycode=1,(SELECT...),(SELECT...)) AS weekavg
  FROM ...
)
  

Комментарии:

1. Еще одна вещь, как я могу добавить это в конец вашего запроса where procent NOT BETWEEN (100-25) AND (100 25) это выдает ошибку.

2. Неизвестный столбец ‘d.procent’ в предложении ‘where’, где d был псевдоним для производной таблицы.

3. Я стремлюсь получить такие результаты varied 25% , а также ищу эффективный способ.

4. @Pentium10: Вам пришлось бы добавить другой уровень подзапросов или использовать (selloff1 / weekavg) вместо псевдонима.