2016-11-22 65 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