我有一个用于在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>
我想在这个饼图中只有2个区域。一个区域应该全部是活动的,另一个区域应该是!="Active"
或在sql中描述它将是:
Case When "Active" then "Active" else "NotActive".
如何使用SSRS实现此目的?
我一直试图用这个系列的组表达式来做这个:
我做错了什么? 如何获得2个阴影区域?
在尝试下面的IIF建议后,我得到的输入字符串不是公认的格式:
根据凯尔的建议,我已将公式更改为:
=
IIf(Not (IsNothing(Fields!bio_webuseraccountstatusgroupbyValue.Value)
OR Fields!bio_webuseraccountstatusgroupbyValue.Value="")
,"Active"
, "InActive")
我现在得到的结果仍然是那个愚蠢的错误信息:
另一次尝试失败:
=iif(NOT IsNothing(Fields!bio_webuseraccountstatusgroupbyValue.Value),
Switch(Fields!bio_webuseraccountstatusgroupbyValue.Value<>"InActive"
AND Fields!bio_webuseraccountstatusgroupbyValue.Value<>"Active",
"InActive", "Active")
,"InActive")
有趣的是,这一次,只有一个错误:
我错误地使用了字符串值而不是数字,所以现在就是这样:
=IIF(NOT IsNothing(Fields!bio_webuseraccountstatusgroupbyValue.Value),
SWITCH(Fields!bio_webuseraccountstatusgroupbyValue.Value <> 1
AND Fields!bio_webuseraccountstatusgroupbyValue.Value<>3,
1,
True, 3
),1)
现在我没有错误,只是一个错误的饼图:
答案 0 :(得分:2)
你想要一个IIf表达式:
=IIf(Fields!bio_webuseraccountstatusgroupbyValue.Value = "Active", "Active", "NotActive")
您还需要将其设置为SeriesGroup的Label属性。
答案 1 :(得分:1)
最终表达式中的语法不正确,您错过了True
语句中最后一个语句的SWITCH
部分。
虽然逻辑对我来说不合适,但这句话所说的是什么
如果该字段为NULL
,则该值将为非活动状态,否则如果字段DOES NOT
等于非活动AND
DOES NOT
等于活动,则该值将为非活动状态,否则为活动状态
=IIF(NOT IsNothing(Fields!bio_webuseraccountstatusgroupbyValue.Value),
SWITCH(Fields!bio_webuseraccountstatusgroupbyValue.Value <> "InActive"
AND Fields!bio_webuseraccountstatusgroupbyValue.Value<>"Active",
"InActive",
True, "Active"
),"InActive")
替代方法对包含数值的Value列使用以下表达式:
=IIF(Fields!bio_webuseraccountstatusgroupbyValue.Value = 3, 3, 1)