SSRS:如何显示组头中总计的百分比

时间:2010-01-26 10:50:47

标签: reportingservices-2005 reporting-services

我有一份报告显示按客户部门分组的过去3个月的销售代表的客户预约。在客户部门组标题中,我想显示约会所代表的该部门中客户总数的百分比。

例如,我的报告显示John Smith在过去3个月内为“国防”部门的客户做了6次约会。约翰史密斯还为“地方政府”部门的客户预约了四次。

我知道我共有10名国防客户和20名当地政府客户。如何显示过去三个月中该行业客户的百分比?

所以我目前显示:

Sales Rep: John Smith (10 appointments)
     Sector: Defence (2 customers)
          Customer 1 (4 appointments)
                Appointment 1 -- Blah
                Appointment 2 -- Blah
                Appointment 3 -- Blah
                Appointment 4 -- Blah
          Customer 2 (2 appointments)
                Appointment 1 -- Blah
                Appointment 2 -- Blah
     Sector: Local Government (2 customers)
          Customer 3 (3 appointments)
                Appointment 1 -- Blah
                Appointment 2 -- Blah
                Appointment 3 -- Blah
          Customer 4 (1 appointment)
                Appointment 1 -- Blah

我想表明:

Sales Rep: John Smith (10 appointments)
     Sector: Defence (2 customers - **20% of total Defence customers**)
          Customer 1 (4 appointments)
                Appointment 1 -- Blah
                Appointment 2 -- Blah
                Appointment 3 -- Blah
                Appointment 4 -- Blah
          Customer 2 (2 appointments)
                Appointment 1 -- Blah
                Appointment 2 -- Blah
     Sector: Local Government (2 customers - **10% of Local Government customers**)
          Customer 3 (3 appointments)
                Appointment 1 -- Blah
                Appointment 2 -- Blah
                Appointment 3 -- Blah
          Customer 4 (1 appointment)
                Appointment 1 -- Blah

我是SSRS的菜鸟,所以不知道我怎么能做到这一点。我是否在报表中添加了一个数据集,其中包含每个客户部门的客户总数?

如果我这样做,我如何在我目前在客户部门组标题中显示的表达式中使用总数来说,防御,以计算该部门中看到的总客户的百分比?

由于数据库限制,我无法在源数据库中创建任何表,视图或存储过程,因此所有工作都必须在报告中完成。

我正在使用SSRS 2005。

非常感谢!

1 个答案:

答案 0 :(得分:1)

我认为通过在当前数据的SQL查询中添加%customers作为列,可能最容易实现您想要完成的任务。这取决于您现在拥有多少数据集。如果您为数据集发布SQL,我很乐意为您提供建议;没有它,我将不得不猜测。这可能足以引导您走上正确的道路。

如果您将上述数据拉入表格的大型非规范化结果中:

SELECT 
     SalesRep
   , Sector
   , Customer
   , Appointment
   , (SELECT count(*) FROM customers WHERE s.sector = sector) as numCustomerPerSector
FROM SalesReps sr
INNER JOIN Sectors s
   ON ...
...
WHERE 1=1

我确信这不是最佳解决方案,但它会起作用。