2016-11-22 56 views
-1

我有服務,它有多個任務。每個任務都有一個特定向量的扣除。總計由多列

我希望通過每個Vector_id和每個服務查詢所有矢量扣除%。

例如,我想:

Service | Vector | Deduction % 
--------------------------------------- 
    SM  |  10  |  5 
    SM  |  11  |  10 
    .... 
    ES  |  10  |  5  
    .... 

我已經得到命令我希望通過總結釦除列,但不能按語句獲取正確的組:

Select 
Service.name AS ServiceName, 
Task.name AS TaskName, 
Deduction.Vector_id AS DeductionVector, 
Deduction.deduction AS DeductionPercentage 
FROM 
Task JOIN Service ON 
Service.id = Task.Service_id 
JOIN Deduction ON 
Deduction.Task_id = Task.id  
ORDER BY ServiceName, DeductionVector; 

下面是各表正在使用和一些數據:http://www.sqlfiddle.com/#!9/ea5f70

+0

我可以幫你嗎? – rbr94

+0

有點奇怪,短語'SUM'和'GROUP BY'都從你的查詢中缺失 – Strawberry

+0

如果對這裏的評論和回答有任何反應,這將是很好的 – rbr94

回答

0

試試這個:

Select 
    Service.name AS ServiceName, 
    Task.name AS TaskName, 
    Deduction.Vector_id AS DeductionVector, 
    SUM(Deduction.deduction) AS DeductionPercentage 
... 
GROUP BY Service.name, Task.name, Deduction.Vector_id 
... 

請注意,您應始終使用Group By您在Select中使用的所有列,但聚合值(例如COUNTSUM)除外。

+0

感謝您的幫助,但是我試圖爲每個服務獲得每個矢量的所有扣除額。 – user3770935

+0

@ user3770935如果解決了問題,您可以從「GROUP BY」中刪除「Task.name」 – rbr94