У меня есть отчет, который настроен, как показано ниже. Я использую группы строк дня месяца (которые я намерен сделать невидимыми в окончательном черновике), чтобы сравнить первое число этого месяца с первым числом прошлого месяца и так далее.
Когда я запускаю, это выглядит так
Что идеально. Однако мне нужно заполнять пустую строку каждый день нижней строкой за вычетом верхней строки, чтобы получать изменения от месяца к месяцу, и я не знаю, как этого добиться и возможно ли это вообще. Я предполагаю, что, если это возможно, это будет с использованием выражений, но отличных от простых в этом отчете.
например, отвеченные вызовы% = Fields! Calls_Ansarded.Value / Fields! Calls_Offered.Value
Я немного не в себе.
Возможно, эту проблему лучше всего решить на уровне SQL, а не на уровне SSRS. Если это полезно, я использую следующий SQL-запрос.
SELECT
CONVERT(DATE,FORMAT([Start Time],'dd/MM/yyyy'),103) AS [Date]
,[Client Name]
,[Account]
,SUM(IIF([Type] in ('Normal operator call','Caller rang off','Caller rang off during divert','No suitable operator logged on'),1,0)) AS [Calls Offered]
,SUM(IIF([Type] in ('Normal operator call'),1,0)) AS [Calls Answered]
,SUM(IIF([Type] in ('Caller rang off','Caller rang off during divert','No suitable operator logged on'),1,0)) AS [Ring Offs]
,SUM(IIF([Ring (secs)] <= 20 AND [Type] in ('Normal operator call'),1,0)) AS [Answered in 20 Secs]
,SUM(IIF([Ring (secs)] > 5 AND [Type] in ('Caller rang off','Caller rang off during divert','No suitable operator logged on'),1,0)) AS [CRO After 5 Secs]
,AVG(IIF([Type] in ('Normal operator call'),[Ring (secs)],null)) AS 'Avg Time to Answer'
,AVG(IIF([Type] in ('Normal operator call'),[Connected (secs)],null)) AS 'Avg Call Time'
FROM InboundCallsView
WHERE [Client Name] = (@Client) and [Start Time] >= DATEADD(m,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()), 0))
GROUP BY FORMAT([Start Time],'dd/MM/yyyy'),[client name],[account]
ORDER BY [Client Name],[date]