私は2つのテーブルを持っています:
tbl_projects
tbl_projects_tasks
シンプルなタスク管理インターフェースです。そして、タスクはプロジェクトに割り当てられます。また、タスクテーブル内にpercentage
、整数フィールドであると呼ばれる列があります。当然のことながら、パーセンテージの理由から、私はそれを0
-から守ります。100
また、Projectsテーブル内には、次の列があります。projectpercentagedone
この列は、プロジェクトに関連するすべてのタスクを平均します。
これが平均化を行うクエリです(私の例では単一の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
より高度な設定の理由から、さらに一歩進んでいきたいと思います。
projectvisible
合計AVGが100%の場合、のをtbl_projects
から1
に更新したいと思い0
ます。
もちろん、分離して2つのクエリを実行できます。しかし、1つのクエリの方がはるかに優れていると確信しています。このタイプの条件文は、私の経験を少し上回っています。私はそれに少し助けを探しています。