SSRS中的表达

时间:2013-12-04 18:42:31

标签: sql sql-server reporting-services

我试图在SSRS中使用某种表达方式。我的查询提取了一个类别,子类别和按子类别分组的计数语句,用于跟踪事件。这是我的问题:

SELECT Category, Sub_Category, CAST(Count(incident) AS decimal) As Total_Incidences
FROM service_req
GROUP BY Sub_Category

我试图将这些分解为百分比,例如特定子类别占某一主要类别事件的67%,并且还希望主要类别占总呼叫的百分比,即所有类别的12%发生率来自这一特定类别。

在尝试使其工作时,我的数学并不正确,我无法找到最佳方法。有什么建议?我知道我必须将计数语句除以子类别中所有发生率的总和来得到该百分比,并将所有子类别总和除以总发生率得到第一个百分比但是我不确定如何使用这些百分比表达式(或者即使我可以)让它工作。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

问题不是在SSRS中解决,而是在返回数据的查询中解决。您需要2个单独的分组 - 一个按类别,另一个按类别/子类别组合。然后你可以像这样加入他们:

SELECT Sub.Category, Sub.Sub_Category, Sub.Total_IncidencesSub*100/Main.Total_IncidencesMain AS Percentage FROM

(SELECT Category, CAST(Count(incident) as DECIMAL) As Total_IncidencesMain
FROM service_req
GROUP BY Category) Main

INNER JOIN

(SELECT Category, Sub_Category, CAST(Count(incident) AS DECIMAL) As Total_IncidencesSub
FROM service_req
GROUP BY Category, Sub_Category) Sub

ON Main.Category = Sub.Category

这是现场演示:http://sqlfiddle.com/#!3/eee07/7