@veryaskinan
веб-программист

Почему не работает запрос с подзапросом в mysql 5.7?

Не получается выполнить такой запрос в mysql 5.7

SELECT
  routes.id_zadakur taskId,
  sum(BS_TIME_DIFF(routes.arrival,routes.departure)) wait,
  sum(BS_TIME_DIFF((SELECT r2.departure FROM routes r2 WHERE routes.series = r2.series + 1 AND r2.id_zadakur = taskId),routes.arrival)) active
FROM routes
GROUP BY routes.id_zadakur


выдает такую ошибку
[42S22][1054] Unknown column 'taskId' in 'where clause'


При этом в mysql5.5 запросы выполняется прекрасно. В чем разница, как можно переписать запрос, чтобы он работал и на 5.7?
  • Вопрос задан
  • 238 просмотров
Решения вопроса 1
27cm
@27cm
TODO: Написать статус
SELECT
    r.id_zadakur taskId,
    sum(BS_TIME_DIFF(r.arrival, r.departure)) wait,
    sum(BS_TIME_DIFF((
        SELECT r2.departure FROM routes r2 
        WHERE r.series = r2.series + 1 AND r2.id_zadakur = r.id_zadakur
    ), r.arrival)) active
FROM routes r
GROUP BY routes.id_zadakur
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT `r`.`id_zadakur` AS `taskId`,
       sum(BS_TIME_DIFF(`r`.`arrival`, `r`.`departure`)) AS `wait`,
       sum(BS_TIME_DIFF(IFNULL(`r2`.`departure`, `r`.`arrival`), `r`.`arrival`)) AS `active`
  FROM `routes` AS `r`
  LEFT JOIN `routes` AS `r2` ON `r2`.`id_zadakur` = `r`.`id_zadakur` AND `r2`.`series` = `r`.`series`-1 
  GROUP BY `r`.`id_zadakur`
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы