RDL根据条件合并/拆分行

时间:2019-11-28 06:03:04

标签: sql sql-server rdlc rdl

我有一个数据集

Column1 Column2 Column3 Column4 Column5 Column6 Column7 Column8 Column9 Column10
1       a       d       1       1       0+1     2       1       2       1
1       b       e       1       1       1+3     8       4       2       1
1       b       e       2       1       1+3     8       4       2       1
1       b       e       3       1       1+3     8       4       2       1
1       b       e       5       1       1+3     8       4       2       1
1       c       f       1       1       0+1     2       1       2       1

我希望我的报告显示为

Column1 Column2 Column3 Column4 Column5 Column6 Column7 Column8 Column9 Column10
1       a       d       1       1       0+1     2.00    1       2.00    1
1                       1                       2.00    
1       b       e       2       1       1+3     8.00    4       2.00    1
1                       3                       2.00    
1                       5                       2.00    
1       c       f       1       1       0+1     2.00    1       2.00    1

基本上,我需要将具有相同数据的行合并在一起(仅适用于某些列)。有可能在rdl中实现吗?我碰到一个论坛,说在rdl中无法实现。我也尝试过使用子报表,但无法实现所需的布局。还是我需要以某种方式更改数据集?

1 个答案:

答案 0 :(得分:0)

这应该有效;

;with T as
(select ROW_NUMBER() OVER (PARTITION BY     Column1,column2,column3,column5,column6,column7,column8,column9,column10 ORDER BY Column4) rn
,Column1
,column2
,column3
,column4
,column5
,column6
,column7
,column8
,column9
,column10
from <your_table_name>
)
select 
Column1
,case rn     when 1 then column2      else '' end as column2
,case rn     when 1 then column3      else '' end as column3
,column4
,case rn     when 1 then column5      else '' end as column5
,case rn     when 1 then column6      else '' end as column6
,case rn     when 1 then column7      else '' end as column7
,case rn     when 1 then column8      else '' end as column8
,case rn     when 1 then column9      else '' end as column9
,case rn     when 1 then column10     else '' end as column10
from T