SSRS 案例陈述
SSRS Case Statement
我已经在各个年级的SSRS中创建了一个table,但是我需要把2个年级的值放在一起看,然后给它分配一个alternate grade。我不能将其作为 CASE 放在 SELECT 中,因为数据库的设计方式不是将值存储在一行中,而是存储在多行中,因此它无法将数据合并到一个新列中。例如,这是DB
中表示的一位学生成绩
634 Attainment *@1@2@3@4@N/A NULL 1 2
636 Effort A*@A@B@C@N/A NULL A 2
637 Focus EX@ME@WB@N/A NULL EX 1
638 Participation EX@ME@WB@N/A NULL ME 2
639 Groupwork EX@ME@WB@N/A NULL ME 2
640 Rigour EX@ME@WB@N/A NULL ME 2
641 Curiosity EX@ME@WB@N/A NULL ME 2
642 Initiative EX@ME@WB@N/A NULL ME 2
643 Self Organisation EX@ME@WB@N/A NULL ME 2
644 Perseverance EX@ME@WB@N/A NULL ME 2
我创建了一个 table,它根据学生 ID 对成绩进行了分组,现在它表示为每个成绩(努力、专注等)的一行和一列标题。
我尝试使用 ReportItems 求和!Textbox1.Value 但我不能使用此方法,因为它不是聚合函数。我想做的是
IF (ReportItems!Textbox104.Value + ReportItems!Textbox105.Value = 2) 然后 5
有办法吗?
附加:
我刚试过:
=SWITCH(ReportItems!Textbox104.Value + ReportItems!Textbox105.Value = 2, 5,
ReportItems!Textbox104.Value + ReportItems!Textbox105.Value = 3, 4,
ReportItems!Textbox104.Value + ReportItems!Textbox105.Value = 4, 3,
ReportItems!Textbox104.Value + ReportItems!Textbox105.Value = 5, 2,
ReportItems!Textbox104.Value + ReportItems!Textbox105.Value = 6, 1,
ReportItems!Textbox104.Value + ReportItems!Textbox105.Value = 7, 0,
"NULL"
)
返回错误。
我终于用这个表达式解决了这个问题:
=IIF(ReportItems!Textbox104.Value + (ReportItems!Textbox105.Value = 2), 5,
IIF(ReportItems!Textbox104.Value + (ReportItems!Textbox105.Value = 3), 4,
IIF(ReportItems!Textbox104.Value + (ReportItems!Textbox105.Value = 4), 3,
IIF(ReportItems!Textbox104.Value + (ReportItems!Textbox105.Value = 5), 2,
IIF(ReportItems!Textbox104.Value + (ReportItems!Textbox105.Value = 6), 1,
IIF(ReportItems!Textbox104.Value + ReportItems!Textbox105.Value = 7, 0,
"NULL"))))))
我已经在各个年级的SSRS中创建了一个table,但是我需要把2个年级的值放在一起看,然后给它分配一个alternate grade。我不能将其作为 CASE 放在 SELECT 中,因为数据库的设计方式不是将值存储在一行中,而是存储在多行中,因此它无法将数据合并到一个新列中。例如,这是DB
中表示的一位学生成绩 634 Attainment *@1@2@3@4@N/A NULL 1 2
636 Effort A*@A@B@C@N/A NULL A 2
637 Focus EX@ME@WB@N/A NULL EX 1
638 Participation EX@ME@WB@N/A NULL ME 2
639 Groupwork EX@ME@WB@N/A NULL ME 2
640 Rigour EX@ME@WB@N/A NULL ME 2
641 Curiosity EX@ME@WB@N/A NULL ME 2
642 Initiative EX@ME@WB@N/A NULL ME 2
643 Self Organisation EX@ME@WB@N/A NULL ME 2
644 Perseverance EX@ME@WB@N/A NULL ME 2
我创建了一个 table,它根据学生 ID 对成绩进行了分组,现在它表示为每个成绩(努力、专注等)的一行和一列标题。
我尝试使用 ReportItems 求和!Textbox1.Value 但我不能使用此方法,因为它不是聚合函数。我想做的是
IF (ReportItems!Textbox104.Value + ReportItems!Textbox105.Value = 2) 然后 5
有办法吗?
附加: 我刚试过:
=SWITCH(ReportItems!Textbox104.Value + ReportItems!Textbox105.Value = 2, 5,
ReportItems!Textbox104.Value + ReportItems!Textbox105.Value = 3, 4,
ReportItems!Textbox104.Value + ReportItems!Textbox105.Value = 4, 3,
ReportItems!Textbox104.Value + ReportItems!Textbox105.Value = 5, 2,
ReportItems!Textbox104.Value + ReportItems!Textbox105.Value = 6, 1,
ReportItems!Textbox104.Value + ReportItems!Textbox105.Value = 7, 0,
"NULL"
)
返回错误。
我终于用这个表达式解决了这个问题:
=IIF(ReportItems!Textbox104.Value + (ReportItems!Textbox105.Value = 2), 5,
IIF(ReportItems!Textbox104.Value + (ReportItems!Textbox105.Value = 3), 4,
IIF(ReportItems!Textbox104.Value + (ReportItems!Textbox105.Value = 4), 3,
IIF(ReportItems!Textbox104.Value + (ReportItems!Textbox105.Value = 5), 2,
IIF(ReportItems!Textbox104.Value + (ReportItems!Textbox105.Value = 6), 1,
IIF(ReportItems!Textbox104.Value + ReportItems!Textbox105.Value = 7, 0,
"NULL"))))))