SSRS: как отобразить процент от общего количества в заголовке группы - PullRequest
1 голос
/ 26 января 2010

У меня есть отчет, показывающий встречи с клиентами по торговым представителям за последние 3 месяца, сгруппированные по секторам клиентов. В заголовке группы «Сектор клиентов» я хочу показать процент от общего числа клиентов в этом секторе, которые представляют встречи.

Например, мой отчет показывает, что Джон Смит назначил 6 назначений для клиентов в секторе «Оборона» за последние 3 месяца. Джон Смит также назначил 4 встречи для клиентов в секторе «Местное самоуправление».

Я знаю, что у меня в общей сложности 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 Ответ

1 голос
/ 28 января 2010

Я думаю, что вы хотите достичь, вероятно, проще всего, добавив% клиентов в качестве столбца в ваш запрос SQL для текущих данных. Это зависит от того, сколько наборов данных у вас есть сейчас. Если вы опубликуете свой 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

Я уверен, что это не оптимальное решение, но оно будет работать.

...