2012-04-06 25 views
-1

我有一个表的设计是这样的...SQL查询来执行负载检查为员工

  • 1项目 - >多个产品。
  • 1产品 - >多种环境。
  • 1员工 - >多项活动。

状态可以 “搁置” 是= “新”, “INPROGRESS”, “关闭”

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)

(A)。然后在status = new或inprogress的那个项目中找到该雇员的活动数量。 (B)。除A/B。以百分比值计算此A/B。

所以我最终的查询表输出将包括

  • 员工
  • 项目的名称
  • 总分配行为(计数值)
  • 其地位法新或进程(Count的名称)
  • 负荷(百分比值)

任何人都可以帮助我查询并解释如何实现这个结果?谢谢。

到目前为止,我已经尝试过这么多......让A和B的结果,但现在我需要结合这两种...

(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 ; 
+0

@AmitBhargava在上面编辑过... – user1312006 2012-04-09 10:03:16

+0

A的计数应该大于B的计数。那么,你想要A/B还是B/A? – sarwar026 2012-04-09 17:41:09

+0

是的,我是Sarwar026 ..我想要A/B – 2012-04-10 04:56:20

回答

0

这是高达3结果......不是第4一。

select Employee_table.name,Project_table.Project_Name, Count(activity_table.actid) AS CountOfactid 

from Activity table,Employee_Table,Project_Table,Employee_Product_projectMapping_Table 

where Activity_Table.Product_Id=Project_Table.Product_Id 

and 

aage ka syntax yaad nai aa raha hai... 

Employee_Product_projectMapping_Table aur Employee_Table ko combine karke emp name through equating product id... 

第四届一个使用嵌套查询......

将尽力解决这个查询尽快.....:P

409008 ....

+1

欢迎来到SO,Chandan Ray。请在整个答案中尝试使用英语。 – 2012-04-20 13:47:54