2014-01-10 2 views
1

У меня есть следующие матрицы в SSRS 2008 R2:фильтров Столбцы на основе состояния подряд

То, что я хотел бы сделать, это показывать только столбцы, где строка «ЭПЗ» имеет значение. (Помечается красными кругами). Я пробовал фильтры и показывал/скрывал параметры на основе выражений в свойствах столбца, но я не могу понять, как ссылаться только на строки, когда «category» = «FTE». Мои данные выглядит следующим образом:

tblPhysicians 
employee_id last_name ... 
102341145  Smith 
123252252  Jones 

tblPhysiciansMetrics 
id  fy  period  division_name  category_name  employee_id 
123  2014 1   Allergy   Overhead   123456 
124  2014 1   Allergy   Salary   125223 
125  2014 1   Allergy   FTE    1.0 


query 
SELECT * FROM 
tblPhysicians 
INNER JOIN tblPhysicianMetrics 
    ON tblPhysicians.employee_id = tblPhysicianMetrics.employee_id 
WHERE 
    tblPhysicianMetrics.division_name = @division_name 
    AND tblPhysicianMetrics.fy = @fy 
    AND tblPhysicianMetrics.period = @period 

Обратите внимание, что строки в моей Матрице только category_name, поэтому я не могу просто скрыть, когда category_name = «ЭПЗ», это не совсем то, что я хочу. Что мне действительно нужно, так это сказать: «Для строк, где category_name =« FTE », если значение не задано, не показывайте этот столбец». Это возможно?

Альтернативой было бы даже не получить их в запросе, но, как и при фильтрации матрицы, если я просто добавлю «AND tblPhysiciansMetrix.category_name = 'FTE» ​​в предложение WHERE, весь мой набор данных сводится только к тем записям, где category_name является FTE.

Любая помощь очень ценится!

Обновление: добавлено определение матрицы, чтобы помочь:

enter image description here

+0

Будет ли И ((category_name = 'FTE' и employee_id не равно нулю) ИЛИ category_name <> 'FTE') тип логики работы? Поскольку все столбцы и столбцы строк размыты, я угадываю часть логики здесь. –

ответ

0

РИСКОВАННАЯ Я не 100% уверен, как вы группируя эти данные в матрице. Это не на 100% ясно из вашего описания. Дайте мне знать, почему это не работает (если это не так, и я буду соответствующим образом обновлять свой ответ.

Я заменил столбец employee_id значением имени для моего ответа, чтобы упростить мое объяснение.

Добавить эту вложенную IIF() к видимости свойству столбца вашей матрицы.

=IIF(Fields!category_Name.Value="FTE" ,IIF(Fields!value.Value >= 0, True,False),false) 

Он проверит как значение категории и «FTE» в ячейке этой строки.

+0

Спасибо. Я добавил: «= IIF (Fields! Category_name.Value =« FTE », IIF (Fields! Amount.Value> = 0, True, False), false)» к свойствам столбца («сумма») - это имя поля со значением, но отчет все еще показывает эти столбцы. Я обновляю свой вопрос с помощью экрана с моим определением матрицы. – russds

1

Вы необходимо установить видимость столбца с выражением, которое проверяет все под лежащие данные в колонке для категории FTE.

У меня есть простой набор данных:

enter image description here

и простой матрицы на основе этого:

enter image description here

который выглядит точно так, как вы ожидаете:

enter image description here

Итак, в приведенном выше примере мы хотим, чтобы колонка Brown была скрыта.Чтобы сделать это, использовать выражение как это для видимости Колонка:

=IIf(Sum(IIf(Fields!category_name.Value = "FTE", 1, 0), "last_name") > 0 
    , False 
    , True) 

Это эффективно подсчет всех полей в столбце (определяется параметр last_name областей действия в выражении Sum) - если это> 0 показывает столбец. Работает как требуется:

enter image description here

+0

Привет, @russds, это вообще помогло? Я правильно понимаю ваши требования? –

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