透视SSRS数据集

时间:2017-10-10 09:30:24

标签: sql matrix reporting-services dataset pivot

我有一个看起来像这样的数据集

ID  |       PName       |       Node        |       Val             |
1   |       Tag         |       Name        |       XBA             |
2   |       Tag         |       Desc        |       Dec1            |
3   |       Tag         |       unit        |       Int             |
6   |       Tag         |       tids        |       100             |
7   |       Tag         |       post        |       AAA             |
1   |       Tag         |       Name        |       XBB             |
2   |       Tag         |       Desc        |       Des9            |
3   |       Tag         |       unit        |       Float           |
7   |       Tag         |       post        |       BBB             |
6   |       Tag         |       tids        |       150             |

我希望我的报告中的结果是

    Name    |   Desc    |   Unit    |   Tids    |   Post    |
    XBA     |   Dec1    |   int     |   100     |   AAA     |
    XBB     |   Des9    |   Float   |   150     |   BBB     |   

我尝试过使用SSRS矩阵

Row: PName
Data: Node
Value: Val

结果只是一行名称,下一行是desc,下一行是单位等。它不是全部在同一行,第二行也没有。这可能是因为数据集上没有分组。

实现预期结果的好方法是什么?

1 个答案:

答案 0 :(得分:0)

我不建议将其用于生产场景,但如果您需要快速删除报告或者您可以尝试这样做。我不会觉得你得到的记录顺序总是如你所愿。

您可以尝试将SP的结果插入到表中(常规表,临时表,表变量......只要您可以添加标识列,就没关系)。假设行总是以正确的顺序出现(100%的时间可能不是有效的假设),那么在表上添加一个标识列以获得每行的唯一行号。从那里你应该能够将一些数学逻辑写入" group"你的价值观,然后转出你想要的。

create table #temp (ID int, PName varchar(100), Node varhar(100), Val varchar(100))

insert #temp exec (your stored proc)

alter table #temp add UniqueID int identity

then use UniqueID (modulo on 5 perhaps?) to group records together and then pivot