Отображение агрегатов по перекрывающимся диапазонам в матрице служб отчетов - PullRequest
0 голосов
/ 12 октября 2009

У меня проблема с отображением значений для диапазона дат в строке матрицы. Я хотел бы, чтобы матрица отображала следующие данные:

            Trial Existing  Total
Yesterday      3    1       4
This Week      5    3       8
Last Week     18    5      23
Month to Date 26    9      35
Last Month    32   20      52

Я думал, что решением будет создание вычисляемого поля с текстовыми значениями для диапазона отмены («Вчера», «Эта неделя» и т. Д.). Проблема в том, что эти диапазоны дат перекрываются, и поле может содержать только одно текстовое значение.

Есть ли способ создать такую ​​матричную таблицу в службах Reporting Services?

1 Ответ

0 голосов
/ 12 октября 2009

Если я могу предложить, почему бы не создать набор результатов SQL с теми же данными, используя UNION в запросе?

, например

SELECT 'Yesterday' AS When, 
SUM(CASE WHEN Status = 'Trial' Then 1 Else 0 End) AS Trial,
SUM(CASE WHEN Status = 'Other' Then 1 Else 0 End) AS Other
FROM myTable
WHERE TheDate >= givenDate AND TheDate < (givenDate + 1)
GROUP BY When
UNION
SELECT 'This Week' AS When, 
SUM(CASE WHEN Status = 'Trial' Then 1 Else 0 End) AS Trial,
SUM(CASE WHEN Status = 'Other' Then 1 Else 0 End) AS Other
FROM myTable
WHERE TheDate >= (givenDate - 7) AND TheDate < (givenDate + 1)
GROUP BY When

Примечание. Я написал этот запрос, чтобы дать вам пример того, как это можно сделать в SQL. Чтобы не полагаться на службы отчетов для выполнения работы.

И вам придется сделать несколько манипуляций, чтобы получить даты «Эта неделя» с использованием функций, связанных с DATE, в tsql.

Поле Total может быть вычисляемым полем в отчете.

...