在我的模式中,我有一個表項目和一個表任務。每個項目都由任務組成。每個任務都有小時和百分比完成。爲什麼這個SQL SUM語句正確?
示例表:
ProjectID TaskID Hours PercentComplete 1 1 100 50 1 2 120 80
我想獲得的加權比例爲完成該項目。我使用下面的SQL語句執行此操作:
SELECT P.ProjectID, P.ProjectName, SUM(T.Hours) AS Hours,
SUM(T.PercentComplete * T.Hours)/100 AS CompleteHours,
SUM(T.PercentComplete * T.Hours)/SUM(T.Hours) AS PercentComplete
FROM Projects AS P INNER JOIN
Tasks AS T ON T.ProjectID = P.ProjectID
WHERE (P.ProjectID = 1)
我的問題是有關聲明的這一部分:
SUM(T.PercentComplete * T.Hours)/SUM(T.Hours) AS PercentComplete
這讓我對這個項目的正確加權百分比(在的情況下以上樣本數據,66%)。但我似乎無法圍繞爲什麼這樣做。
此查詢爲何起作用?
你不明白什麼?你會如何試圖寫這個查詢? – 2010-08-03 18:51:55
我寫了這個查詢。我只是不知道爲什麼它給了我正確的結果。 – 2010-08-03 18:52:31
在這裏尋找整數數學。你真的想要得到舍入而不是準確的數字嗎? – HLGEM 2010-08-03 18:57:16