2014-10-30 2 views
0

У меня есть набор данных, который я использую для создания круговой диаграммы в SSRS:группировка данных для круговой диаграммы в SSRS

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false" aggregate="true"> 
    <entity name="account"> 
    <attribute name="bio_employeesworldwide" alias="TotalWorldWideEmployees" aggregate="sum" /> 
    <filter> 
     <condition attribute="customertypecode" operator="eq" value="2" /> 
    </filter> 
<link-entity name="contact" from="parentcustomerid" to="accountid" alias="contact"> 


    <attribute name="bio_webuseraccountstatus" alias="count_bio_webuseraccountstatus" aggregate="countcolumn" /> 

    <attribute name="bio_webuseraccountstatus" alias="bio_webuseraccountstatusgroupby" groupby="true" /> 

    </link-entity> 
    </entity> 
</fetch> 

enter image description here

Я хотел бы иметь только 2 области, в этом пироге диаграмма. Одна из областей, все должно быть активным, а другой должен быть все, что !="Active"

или описать в SQL было бы:

Case When "Active" then "Active" else "NotActive". 

Как сделать это с SSRS?

Я пытался сделать это с помощью групповых выражений для серии:

enter image description here

enter image description here

Что я делаю неправильно? Как мне получить 2 затененных региона?

После попытки предложения IIF ниже, я получаю строку ввода был не в признанном формате:

enter image description here

Следуя совет Кайла, я изменил формулу:

= 
IIf(Not (IsNothing(Fields!bio_webuseraccountstatusgroupbyValue.Value) 
    OR Fields!bio_webuseraccountstatusgroupbyValue.Value="") 
    ,"Active" 
     , "InActive") 

и результат, который я получаю сейчас, остается тем глупым сообщением об ошибке:

enter image description here

Другой неудачная попытка:

=iif(NOT IsNothing(Fields!bio_webuseraccountstatusgroupbyValue.Value), 

     Switch(Fields!bio_webuseraccountstatusgroupbyValue.Value<>"InActive" 
     AND Fields!bio_webuseraccountstatusgroupbyValue.Value<>"Active", 
      "InActive", "Active") 

     ,"InActive") 

интересно на этот раз, есть только одна ошибка:

enter image description here

я неправильно использовал значение строки вместо числовой, так что теперь это:

=IIF(NOT IsNothing(Fields!bio_webuseraccountstatusgroupbyValue.Value), 
     SWITCH(Fields!bio_webuseraccountstatusgroupbyValue.Value <> 1 
        AND Fields!bio_webuseraccountstatusgroupbyValue.Value<>3, 
       1, 
       True, 3 
     ),1) 

сейчас я получаю без ошибок, просто неправильный круговой диаграммы:

enter image description here

ответ

1

Синтаксис в вашем окончательном выражении неверен, вам не нужна часть True в последнем утверждении в инструкции SWITCH.

Хотя логика не подходит мне, это выражение говорит.
Если поле NULL, тогда значение будет неактивным, в противном случае, если поле DOES NOT равно Неактивно ANDDOES NOT равно Активен, тогда значение будет неактивным, иначе оно будет активным.

=IIF(NOT IsNothing(Fields!bio_webuseraccountstatusgroupbyValue.Value), 
     SWITCH(Fields!bio_webuseraccountstatusgroupbyValue.Value <> "InActive" 
        AND Fields!bio_webuseraccountstatusgroupbyValue.Value<>"Active", 
       "InActive", 
       True, "Active" 
     ),"InActive") 

Alternative использовать следующее выражение на столбце Значение, которое содержит числовые значения:

=IIF(Fields!bio_webuseraccountstatusgroupbyValue.Value = 3, 3, 1) 
+0

большое спасибо, im все еще получаю эту ошибку: http://screencast.com/t/yBYndxhSx –

+0

В чем разница между двумя столбцами bio_webuseraccountstatusgroupbyValue и bio_webuseraccountstatusgroupby? Конец, который заканчивается значением, содержит числовые данные и другие текстовые данные? Если это так, вам нужно использовать другой столбец. – mheptinstall

+0

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

2

Вы хотите выражение IIf:

=IIf(Fields!bio_webuseraccountstatusgroupbyValue.Value = "Active", "Active", "NotActive") 

Вы также хотите, чтобы установить это в Лейбл свойство SeriesGroup.

+0

Спасибо, но я получаю эту ошибку: http://screencast.com/t/1MykJEygTq5n строки в неправильно формат? –

+0

Одно из ваших значений в этом поле пуст или не может сравниться со строкой, вы можете попробовать лить свое поле в виде строки (CStr) или добавить дополнительную проверку этого значения, чтобы убедиться, что это не строка (IsNothing, и т. д.) –

+0

спасибо, ive обновил ваш совет! –

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