SSRS报告列列表排序顺序

时间:2017-03-29 20:25:35

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

您好我的ssrs报告我使用矩阵将数据行显示为两列列表和 我使用以下表达式来分组行;

  

=天花板(rownumber(无)/ 2)   和

以下表达式对列进行分组;

  

= ceiling(rownumber(nothing)mod 2)

类似于https://www.experts-exchange.com/articles/12331/Simple-way-to-show-multi-column-data-in-SSRS-Horizontally-or-Vertically.html

它正常工作但是我希望结果显示字母顺序是垂直而不是水平。

像。

Record a    Record d

Record b    Record e

Record c    Record f

而不是

Record a    Record b

Record c    Record d

Record e    Record f

我在我的SQL查询中有订单

有关如何实现这一目标的任何建议?

1 个答案:

答案 0 :(得分:0)

您可以为此修改您的sql。如果您不想使用多个列,可以使用下面的黑客。

DECLARE @T TABLE
(
    TableID INT,
    Value1 NVARCHAR(20),
    ShouldBe INT
)

    INSERT INTO @T (TableID,Value1,ShouldBe)
    VALUES 
    (1,'A',1),
    (2,'B',3),
    (3,'C',5),
    (4,'D',2),
    (5,'E',4),
    (6,'F',6),

    (7,'A',1),
    (8,'B',3),
    (9,'C',5),
    (10,'D',2),
    (11,'E',4),
    (12,'F',6),

    (13,'A',1)



    DECLARE @NumberOfRowsPerPage INT = 3
    DECLARE @NumberOfColumns INT = 2

    SELECT PageNumber,Value1
    FROM
    (
        SELECT ColumnOrder=ROW_NUMBER() OVER(PARTITION BY PageNumber,ColumnTile  ORDER BY TableID),*
        FROM
        (
            SELECT ColumnTile=NTILE(@NumberOfColumns) OVER(PARTITION BY PageNumber ORDER BY TableID),*
            FROM
            (
                SELECT PageNumber=( (DataRowNumber -1) / (@NumberOfRowsPerPage * @NumberOfColumns )) + 1, *
                FROM
                (
                    SELECT DataRowNumber=ROW_NUMBER() OVER( ORDER BY TableID) ,*
                    FROM @T
                )AS A
            )AS B
        )AS C
    )AS D
    ORDER BY
        PageNumber,ColumnOrder,DataRowNumber

查询将根据RowsPerPage和NumberOfColumns生成以下输出。

Page   Value
1   A
1   D
1   B
1   E
1   C
1   F
2   A
2   D
2   B
2   E
2   C
2   F
3   A