【问题标题】:SSRS report column list sort orderSSRS 报表列列表排序顺序
【发布时间】:2017-03-29 20:25:35
【问题描述】:

您好,对于我的 ssrs 报告,我正在使用矩阵将数据行显示为两列列表,并且 我正在使用以下表达式对行进行分组;

=天花板(行号(无)/ 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 查询中有 order by

关于如何实现这一点的任何建议?

【问题讨论】:

  • 你试过切换行和列的表达式吗?
  • 您可以使用多列布局。转到报告属性并设置列=2。只要您的宽度保持为 --> 列数 * 列宽
  • 尝试过切换它们,它们只是显示为两行多列。 @Anand
  • @RossBush 试图避免两列布局,这会导致如此简单的报告出现很多问题。例如在预览报告时它只显示在一列中
  • 有什么想法吗?

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    • 2017-04-08
    相关资源
    最近更新 更多