嗯,我可能已經發布了此前也,但無法找到答案,所以請幫助我在這一個。需要幫助我的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