SQL-запрос для выполнения проверки нагрузки для сотрудника
У меня есть такой дизайн стола ...
1 Project--> Multiple products. 1 Product--> Multiple environment. 1 Employee--> Multiple activities.Статус может быть = "новый", "в процессе", "в ожидании", "закрыт"
<code> 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). </code>
Load check query
Сначала выясните общее количество действий, назначенных каждому сотруднику в конкретном проекте.
(А). затем найдите количество действий для этого сотрудника в этом проекте, где status = new или inprogress. (В). Разделите А / Б. Рассчитайте это A / B в процентах.
Так что мой окончательный вывод таблицы запросов будет состоять из
Name of employee name of project total assigned act(Count value) Act having status new or in process(Count) Load(the percentage value. )Может кто-нибудь помочь мне с запросом и объяснить, как я могу достичь этого результата? Благодарю.
До сих пор я очень много пытался ... получить результаты A и B, но теперь мне нужно объединить эти два ...
<code>(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 ; </code>