Построитель отчетов Расчет нескольких групп матриц - PullRequest
0 голосов
/ 03 мая 2019

У меня есть Матрица, созданная с помощью Мастера матриц в построителе отчетов 3.0 (2014), имеющая 2 группы строк, 1 группу столбцов и 2 значения.После того, как я создаю матрицу (включая итоги и подытоги), у меня есть матрица, которая выглядит просто замечательно.Но теперь я хочу добавить еще одну ячейку для каждой группы столбцов (одна строка), чтобы сохранить значение ниже.

Значение = общее количество 1-й группы строк + общее количество 2-й группы строк - общее количество 3-й группы строк ...

В построенной матрице просто показан промежуточный итог каждой группы строк, которую я не задалне нужно.

Я хочу спросить, как я могу получить результат итога, рассчитанного самой матрицей, и как мне идентифицировать их на основе значения их группы строк, используя выражение?А также, как мне сделать это для каждой группы столбцов, которые имеют разные данные?

Я попытался взглянуть на выражение в режиме конструктора матрицы, он просто показывает [SUM (MyField)] для каждой ячейки вМатрица (итого и подытог).

Или я должен сделать это в другом наборе данных, используя другой запрос?Если да, то какой запрос я должен использовать и как поместить два набора данных в одну матрицу?

Моя матрица выглядит примерно так:

                                              Column Group
ROW GROUP 1  | ROW GROUP 2           | VALUE 1         | VALUE 2
Row Group 1  | Row Group 2           | [Sum(MyField)]  | [Sum(MyField)]
             | TOTAL OF ROW GROUP 1  | [Value]         | [Value]
             | ROW PLAN TO ADD       | [Value(0)+Value | [Value(0)+Value
                                     | (1)-Value(2)]   | (1)-Value(2)]

ЗАГЛАВНЫЕ: Имя столбца, константа

[sqrbrkted]: Расчетное значение

Нормальный: данные внутритаблица

Я новичок в построителе отчетов, извините, если я допустил ошибку.В случае, если я не прояснил себя, пожалуйста, прокомментируйте и дайте мне знать.Заранее спасибо.

РЕДАКТИРОВАТЬ: Я нашел подход для достижения моей цели в разделе ответов ниже.Если у кого-то есть другое решение, пожалуйста, не стесняйтесь ответить на него.Благодарю.

1 Ответ

0 голосов
/ 03 мая 2019

Я решил эту проблему, изменив свой SQL-запрос на создание другого фиктивного столбца, который показывает отрицательный результат, если его соответствующая группа строк предназначена для вычета промежуточного итога (Value (2)) и размещения его внутри матрицы.А внутри выражения у меня есть еще один оператор IIF, чтобы преобразовать его обратно в положительный для демонстрации.

SQL:

SELECT *, (CASE WHEN COL_B = 'VAL_2' THEN -COL_A ELSE COL_A END)AS DMY_COL_A FROM TABLE 

Выражение:

=IIF(Sum(Fields!DMY_COL_A.Value)<0,-Sum(Fields!DMY_COL_A.Value),Sum(Fields!DMY_COL_A.Value))
...