Plsql

計算並返回總的估計可收費成本

  • November 13, 2012

我有一個關於分配給我的小任務的問題。下面我粘貼了問題和數據庫佈局的螢幕截圖。現在我只是不明白我到底要創建什麼,也許是使用者定義的函式?但是怎麼..

問題:計算並返回一個階段的總估計可收費成本,考慮到適用於不同任務的不同收費率(假設該階段的所有工作都已分配)。

數據庫佈局截圖: 數據庫佈局

http://tinypic.com/view.php?pic=2dtvg3l&s=5

(螢幕截圖) - 表數據來自:CHARGE_GRADE;任務類型;任務; CHARGE_GRADE;任務; 員工; (如果有幫助的話)。 在此處輸入圖像描述

http://tinypic.com/view.php?pic=30sujcg&s=5

對此進行了一次非常瘋狂的嘗試

我認為您要做的是匯總(求和)給定 stage_id 的值。您需要連結到任務表以獲取與舞台關聯的所有任務。從任務表中,您需要找出所有相關勞動者的費率。成本是estimate_hours * charge_rate,所以我們只是為每個唯一的stage_id 加起來。

SELECT
   S.stage_id
,   SUM(T.estimated_hours * CG.charge_rate) AS stage_estimated_cost
FROM
   STAGE S
   INNER JOIN
       TASK T
       ON T.stage_id = S.stage_id
   INNER JOIN
       TASK_TYPE TT
       ON TT.task_type_no = T.task_type_no
   INNER JOIN
       CHARGE_GRADE CG
       ON CG.grade_no = TT.grade_no
GROUP BY
   S.stage_id

如果您知道 stage_id 和正確的估計成本,請在 GROUP BY 語句之前的行中添加一個 WHERE 子句,以便類似於WHERE S.stage_id = 10測試查詢。如果我猜得不好,請用公式應該是什麼來修改問題。

引用自:https://dba.stackexchange.com/questions/8157