手动为SSRS中的每一行输入不同的值?

时间:2018-03-23 10:28:18

标签: sql-server reporting-services ssrs-2008

所以,我基本上有一个包含多个列的矩阵,所有列都是基于A列中数字的表达式.A列中的数字都是唯一的,但是保持不变,不需要刷新。所以,我想要做的是创建一个如下所示的矩阵:

<table>
  <TR>
    <TH>Column A</TH>
    <TH>Column B</TH>
    <TH>Column C</TH>
    <TH>Column D</TH>
  </TR>
  <TR>
    <TD>31</TD>
    <TD>Epxression</TD>
    <TD>Epxression</TD>
    <TD>Epxression</TD>
  </TR>
  <TR>
    <TD>123</TD>
    <TD>Epxression</TD>
    <TD>Epxression</TD>
    <TD>Epxression</TD>
  </TR>
  <TR>
    <TD>75</TD>
    <TD>Epxression</TD>
    <TD>Epxression</TD>
    <TD>Epxression</TD>
  </TR>
  <TR>
    <TD>98</TD>
    <TD>Epxression</TD>
    <TD>Epxression</TD>
    <TD>Epxression</TD>
  </TR>
</table>

即,在A列中手动输入静态值,其他所有值都作为基于这些值的表达式。我已经尝试了一些使用参数等的解决方案,但没有任何运气。我想在SSRS中做些什么?

注意:遗憾的是,我无法将值输入到原始SQL表中。

1 个答案:

答案 0 :(得分:0)

这不是很优雅,但如果我理解你的问题,那么你可以用一个参数来输入(以逗号分隔)的值。

然后您需要使用split函数(因为SPLIT_STRING仅在SQL2016中引入)。我使用的可以在本文末尾找到,因为它非常快.. http://www.sqlservercentral.com/articles/Tally+Table/72993/

所以你的数据集查询看起来像这样。

SELECT ItemNumber as [SortOrder], Item as [ColumnA] FROM DelimitedSplit8k(@myParameter, ',')

因此,假设您在参数中键入31,123,75,98,您的数据集输出将如下表所示(基于您的示例)

SortOrder    ColumnA
    1        31
    2        123
    3        75
    4        98

然后,您只需添加一个绑定到该数据集的表,将[ColumnA]添加为第一列,将表达式添加到其他三列中。