2017-08-10 37 views
-1

有兩個表格,有一個預期結果,結果是計算每次參與的總成本,每次參與期間進行多次測試,每個測試的成本範圍(所有設置值) ,預期的結果必須在EngagementId, EngagementCostSQL對錶格的計算

的2個表來看,有有各自的領域

- EngagementTest (EngagementId, TestId) 
- Test (TestId, TestCost) 

enter image description here

一個怎樣去計算每個參與的成本。

這是據我設法得到

SELECT EngagementId, COUNT(TESTId) 
    FROM EngagementTest 
    GROUP BY EngagementId; 
+4

您是否嘗試過的東西沒有?堆棧溢出不是免費的家庭作業服務。 –

+0

我使用了COUNT函數,但很快就意識到我無法使用它完成任務,我移動了一些東西,仍然無法弄清楚該做什麼,還有一個完整的其他任務,但這是我確實無法完成的任務, t瞭解 –

+0

請發佈您試用過的內容 – Eli

回答

0

嘗試TestCost列的SUM,而不是一個COUNTCOUNT只是告訴你行數。 SUM將行內的值相加並給出總數。另外,您的現有查詢實際上並未使用包含成本數據的表。你可以通過INNER JOIN這兩個表通過TestId然後GROUP BY這個EngagementId,這樣你就可以得到每次參與的總和。

事情是這樣的:

SELECT 
    ET.EngagementId, 
    SUM(T.TestCost) 
FROM 
    EngagementTest ET 
    INNER JOIN Test T 
    ON T.TestId = ET.TestId 
GROUP BY 
    ET.EngagementId 
+1

感謝您的幫助,它工作 –

0

它可以使用下面的查詢來實現。

SELECT i.EngagementId, SUM(TestCost) 
FROM EngagementTest i 
INNER JOIN Test t 
ON e.TestId = t.TestId 
GROUP BY i.EngagementId 
+0

進行求和和分組,查詢是正確的,但更好的質量答案將解釋OP和未來讀者的代碼 - 尤其是因爲OP顯然是SQL中的初學者。否則,不一定清楚代碼的作用或哪些部分是重要的。 – ADyson