2017-10-10 82 views
0

我有一个数据集,它看起来像这样枢轴SSRS数据集

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和下一个单位等。它不是所有在同一行和s第二行不见了。这可能是因为数据集上没有分组。

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

+0

*我没有完全得到预期的结果*您得到了什么结果?他们有什么不对?你想看到什么? – iamdave

+1

另外,您的原始数据集来自哪里?这是您已经编写但未包括在内的查询的结果,还是您的数据如何存储在数据库中?目前,我看不出一个可靠的办法把你的问题你的数据集中到你想要的格式,因为其中没有分组你的'名称,商品说明,单位,TIDS,POST'值。 – iamdave

+0

嗨,很好的问题,数据来自存储过程,但也有其他报告也基于此存储过程。我只是不想复制这个存储过程。是的,没有分组。只有相似性是ID列1,2,3,6,7,它重复。 – Abe

回答

0

我不会推荐这个用于生产场景,但如果您需要快速删除报告或者您可以尝试此操作。我会感到不舒服的是,您获得的记录顺序将始终如您所愿。

,你可以尝试插入SP的结果为表(普通表,临时表,表变量...无所谓真的,只要你可以得到一个标识列添加)。假设这些行总是以正确的顺序出现(这可能不是100%的有效假设),那么在表上添加一个标识列以获得每行的唯一行号。从那里你应该可以写出一些数学逻辑来将你的数值“组合”在一起,然后转出你想要的东西。

 
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