У меня есть 2 таблицы:MySQL - Subquery Состояние
tbl_projects
tbl_projects_tasks
Это простой интерфейс управления задачами. Задачи назначаются проектам. У меня также есть столбец внутри таблицы задач, называемый percentage
, который является целым полем. Я держу его от 0
- 100
, естественно, в процентном отношении.
Кроме того, в таблице проектов у меня есть еще один столбец под названием: projectpercentagedone
В этом столбце Averages все задачи, связанные с проектом.
Вот запрос, который делает усреднение (с использованием одного ProjectID в моем примере):
UPDATE `tbl_projects` SET
`totaltasks` = (SELECT COUNT(taskid) AS T1 FROM `tbl_projects_tasks` WHERE projectid = 10),
`projectpercentagedone` = (SELECT AVG(percentage) AS T2 FROM `tbl_projects_tasks` WHERE projectid = 10)
WHERE projectid = 10
LIMIT 1
Я хочу пойти на шаг дальше, к более продвинутым причинам настройки.
Если общее AVG является 100%, я хотел бы обновить projectvisible
из tbl_projects
от 1
к 0
.
Конечно, я мог бы сделать 2 запроса в отделении. Но я уверен, что один запрос более крутой. Этот тип условного утверждения немного выше моего опыта. Я ищу небольшую помощь в этом.
Я вижу, где вы собираетесь. Ваш запрос получает синтаксическую ошибку sql, но я ее корректирую ..... – coffeemonitor
Какова точная ошибка, которая была сгенерирована, поэтому я могу исправить запрос. –
'# 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «COUNT (taskid) totalCount, AVG (%) avgPercent» по строке 5' Я менял его, просто чтобы убедиться, что я сделал это Ничего. Извините за задержки – coffeemonitor