私はこのようなテーブルのデザインを持っています...
- 1 プロジェクト --> 複数の製品。
- 1 製品 --> 複数環境。
- 従業員 1 人 --> 複数の活動。
ステータスは「新規」、「進行中」、「保留中」、「終了」のいずれかです。
Activity table- ActID(PK), assignedtoID(FK), Env_ID(FK), Product_ID(FK), project_ID(FK), Status.
Product_table - Product_ID(PK), Product_name
Project_Table- Project_ID(PK), Project_Name.
Environment_Table- Env_ID(PK), Env_Name.
Employee_Table- Employee_ID(PK), Name.
Employee_Product_projectMapping_Table -Emp_ID(FK), Project_ID(FK), Product_ID(FK).
Product_EnvMapping_Table - Product_ID(FK), Env_ID(FK).
ロード チェック クエリ
最初に、特定のプロジェクトで各従業員に割り当てられたアクティビティの総数を調べます。
(A). 次に、ステータス = 新規または進行中のプロジェクトで、その従業員の活動の数を見つけます。(B)。A/B を割ります。この A/B をパーセント値で計算します。
したがって、最終的なクエリ テーブルの出力は次のようになります。
- 従業員の名前
- プロジェクト名
- 担当行為合計(カウント値)
- ステータスが新規または処理中の行為(カウント)
- 負荷(パーセント値。)
誰かがクエリを手伝って、この結果を達成する方法を説明できますか? ありがとう。
これまでのところ、私はこれを試してきました... AとBの結果を得ていますが、今はこれら2つを組み合わせる必要があります...
(A).
SELECT activity_table.assignid, activity_table.projid, Count(activity_table.actid) AS CountOfactid
FROM activity_table
GROUP BY activity_table.assignid, activity_table.projid;
(B).
SELECT activity_table.assignid, activity_table.projid, Count(activity_table.actid) AS CountOfactid
FROM activity_table where status in ('new','inprogress')
GROUP BY activity_table.assignid, activity_table.projid ;