If statement 报表生成器-包含多个要分类的值的嵌套If语句
我在报表生成器中工作,在创建计算字段以对其他列中的数据进行分类时遇到问题 为了简化和解释我的目标: 我想创建一个包含4个不同类别的计算字段,我假设最好的方法是使用嵌套的if语句。如果这不是最好的功能,请随时纠正我If statement 报表生成器-包含多个要分类的值的嵌套If语句,if-statement,reporting-services,reportbuilder,statements,If Statement,Reporting Services,Reportbuilder,Statements,我在报表生成器中工作,在创建计算字段以对其他列中的数据进行分类时遇到问题 为了简化和解释我的目标: 我想创建一个包含4个不同类别的计算字段,我假设最好的方法是使用嵌套的if语句。如果这不是最好的功能,请随时纠正我 Category 1:我们就叫它“A” 第2类:“B” 第3类:“C” 第4类:“D” 另一列中的值: 简化示例- 1-10号为A类 数字11-20是B 数字21-30是C 31-40号属于D类 但是在我的特殊情况下,这些值在这10个连续的范围内没有很好的组织。例如,我有一个33
Category 1:我们就叫它“A”
第2类:“B”
第3类:“C”
第4类:“D”
另一列中的值:
简化示例-
- 1-10号为A类
- 数字11-20是B
- 数字21-30是C
- 31-40号属于D类
Iif(field data = 1,2,3,4,5,6,7,8,9,10,33, “A”, “Other”)
它不适用于逗号,我尝试在每个值之间插入Or运算符,但也不起作用
感谢您提供的语法提示。有几种方法可以做到这一点
选项1:在数据库设计中 在我看来,最好的方法是在数据库中这样做。创建一个包含这些值/类别对的表,并在需要包含数据的分类视图时简单地连接到该表
选项2:在您的报告设计中 如果您真的必须在报表设计中这样做,那么使用
SWITCH()
可能会更容易阅读
给你的第二个例子,把它扩展一点,你可以这样做
=SWITCH(
(Fields!myData.Value >=1 AND Fields!myData.Value <=10) OR Fields!myData.Value = 33, "A",
(Fields!myData.Value >=11 AND Fields!myData.Value <=15) OR Fields!myData.Value = 34 OR Fields!myData.Value = 39, "B",
True, "Other"
)
=开关(
(字段!myData.Value>=1和字段!myData.Value=11和字段!myData.Value