SSRS案例说明

时间:2018-10-08 13:19:40

标签: reporting-services case ssrs-2016

我已经在不同等级的SSRS中创建了一个表格,但是我需要一起查看2个等级的值并将其分配给另一个等级。我不能将它作为CASE放在SELECT中,因为数据库的设计方式不是将值存储在一行中,而是存储在多行中,因此无法将数据合并到新列中。例如,这是数据库中代表的一个学生成绩

    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

我创建了一个表格,该表格根据学生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"
)

这将返回错误。

1 个答案:

答案 0 :(得分:0)

我终于通过使用以下表达式解决了这个问题:

=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"))))))