嗯,我可能已经发布了此前也,但无法找到答案,所以请帮助我在这一个。需要帮助我的SQL查询
我的数据库结构:
ATT(Activity
表)
- Act_ID(PK)
- Assigned_To_ID(FK,参考
Emp_ID
) - PROJECT_ID(FK,参考
Project_ID
) - Product_ID(FK,参考
Product_ID
) 种
- 状态(可以是
New, OnHold, Cancel, Closed
)
Product_Table
- PRODUCT_ID(PK)
- PRODUCT_NAME
Project_Table
- PROJECT_ID(PK)
- PROJECT_NAME
Employee_Table
- EMP_ID(PK)
- F_Name。
约束
- 在1个项目 - >多个员工可以工作
- 1名员工 - >可以分配多个活动(
Act_ID
) - 在任何给定时间点
Status
可以是任何给定值
现在在我的SQL查询我想要做的是负载检查::
的活动(由Act_ID
表示)被分配给雇员被Assigned_To_ID
表示,项目(Project_ID
在ATT_Table
)和特定状态。我需要输出从我的SQL查询5个值:
- 员工
- 项目
- 活动共计雇员的义务(一)分配数的名称。
- 员工(A)中分配的活动数量为状态为新建或进程中的活动数量。
- 加载。这将是= C/d * 100(C比d更大的价值,这是显而易见的。)
现在有可能是雇员假设E1正在项目P1,P2的条件。所以,我的表输出将是这个样子::
A B C D E
E1 P1
E1 P2
所以在这里C,d,E将具有与活动为该项目(P1或P2)
我有这个到目前为止已经试过值::
SELECT
F_Name AS A,
Project_Name AS B,
Count(Act_ID) AS C,
Count(Act_ID) AS D
FROM
Employee_Table, ATT_Table, Project_Table
WHERE
ATT_table.[Assigned_To_ID] = Employee_Table.[Emp_ID]
AND Project_Table.[Project_ID] = ATT_Table.[Project_ID]
AND Count(Act_ID) IN (SELECT Count(Act_ID)
FROM ATT_Table
WHERE ATT_Table.[Status] <> 'Closed'
AND ATT_Table.[Status] <> 'OnHold')
GROUP BY
F_Name, Project_Name;
我得到A,B,C。但是,当我试图找到状态检查活动,因为它给了我一个消息,不能写在数WHERE子句我不能执行这个查询。请帮助我解决这个问题。 谢谢..
雅......我很抱歉。 Product_Table不涉及。我的错误.. – 2012-04-29 08:36:50
先生,我有这个1权利。但是,今天我知道我的需求有一点变化,所以我发布了一个新问题,它只与这个问题有关。我已经把这个标记为答案,因为这个问题很好。我给你的链接http://stackoverflow.com/questions/10373043/need-to-write-an-sql-query谢谢。 – 2012-04-29 14:43:19