Проблема SSRS в Сравнении строк в группе и отображении совпадения или несоответствия - PullRequest
1 голос
/ 21 мая 2019

У меня есть данные, как показано ниже, и я группируюсь в столбце 1. Мне нужно сравнить column2 с в группе и выделить, если значения для column2 одинаковы или различны в Column3-

Column1 Column2 Column3
123     111 
123     111 
1234    2222    
1234    2222    
1234    3333

Я использую выражение в столбце 3, как показано ниже. Как вы можете, наконец, сказать «Колонка 1», я упомянул ее, учитывая, что она сгруппирует, а затем сравнит.

=IIF(Fields!Column2.Value = Previous(Fields!Column2.Value), "Same", IIF (Fields!Column2.Value <> Previous(Fields!Column2.Value), "Different")), "Column1"

Мое ожидание такое же, как и ниже, то есть столбец 3 должен заполняться, если все значения Column2 одинаковы для группы (группировка column1), тогда столбец 3 должен заполняться одинаково, иначе различаться для всех строк в группе

Column1 Column2 Column3
123      111    Same
123      111    Same
1234    2222    Different
1234    2222    Different
1234    3333    Different

Ответы [ 2 ]

1 голос
/ 23 мая 2019

Для этого вы можете использовать CountDistinct.

Если мы предположим, что ваша RowGroup Column1 называется grpCol1, тогда выражение в столбце 3 будет выглядеть примерно так:

= IIF (CountDistinct (Fields! Column2.Value, "grpCol1")> 1, "Different", "Same")

В основном это говорит .. Подсчитайте, сколько различных значений Column2 существует в группе строк grpCol1

Таким образом, для первых двух строк в вашем примере он вернул бы 1, поскольку существует только 1 отдельное значение, для следующих трех строк он вернул бы 2, поскольку существует 2 различных значения.

Примечание: grpCol1, или как называется ваша группа строк, должно быть в пределах qoutes и чувствительно к регистру.

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

Более простой способ будет:

=IIF(Fields!Column2.Value = Fields!Column1.Value, "Same", "Different")
...