1

Я работаю над отчетом ssrs с группировкой столбцов. Следующее - это мой сценарий.Чтобы вычислить сумму полей в матрице с группировкой столбцов

Матрица 1:

ID  2012 2013 
1  20 40 
1  30 50 

Total 50 90 

Матрица 2:

ID  2012 2013 
1  60 70 
1  60 80 

Total 120 150 

мне нужна сумма Matrix1 и matrix2, как показано ниже:

ID  2012 2013 
1  170 240 

Но я получил результат, как:

ID  2012 2013 
1  410 410 

я применил колонки группировку во всех 3-х матриц и дал выражение, чтобы получить сумму для матрицы 3, как: =Sum(Fields!amount1.Value, "dsmatrix1") + Sum(Fields!Tamount1.Value, "dsmatrix2")

Пожалуйста, помогите мне, чтобы получить разрешение для этого.

Спасибо!

+0

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

+0

Привет, У меня есть параметр как год (например, 202, 2013 и тот, который используется для группировки столбцов). Никаких других параметров, я не уверен, нужно ли указывать что-то конкретное при добавлении столбца с группировкой. – user2395176

ответ

0

Я думаю, что знаю, что происходит. Поправьте меня если я ошибаюсь.

Основываясь на том, что я вижу, я предполагаю, что Matrix 1 и Matrix 2 имеют только три поля, поле идентификатора, поле количества («количество 1» или «Tamount1») и поле года ,

Ваша группа столбцов манипулирует отображением данных, чтобы показать все значения, разбитые на год. Это прекрасно работает при просмотре данных из одного набора данных. Однако ваша формула указывает, что сумма всего в поле Amount1 dsmatrix1 и поле Tamount1 dsmatrix2 должно быть добавлено. Это не учитывает группировку столбцов. Ваше выражение, по сути, принимает все значения из обоих наборов данных и добавляет их вместе.

Не зная больше о структуре запроса или способах фильтрации данных, я полагаю, что вам нужен еще один набор данных SQL. В этом случае вы должны взять запросы из двух предыдущих наборов данных и объединить их с командой «Все соединения». Обратите внимание, что вы захотите использовать Union All, а не Union. Подробнее об этом здесь: What is the difference between UNION and UNION ALL?

Ваш конечный результат должен выглядеть примерно так:

--This will be your dsmatrix1 query copied and pasted 
Select ... 

Union All 

--This will be your dsmatrix2 query copied and pasted 
Select ... 

--Place one single Order by clause at the bottom 
Order by ... 

Примечание: для ваших два запроса, чтобы быть unioned должным образом, вам необходимо убедиться, что каждый имеет один и тот же номер полей, каждый из которых имеет одни и те же типы данных. Затем вы можете указать свою третью матрицу на новый набор данных.

Надеюсь, что это поможет!

Смежные вопросы