繁体   English   中英

如何在 SSRS 报告中为多级组设置自动编号?

[英]How to set automatic numbering for multilevel group in SSRS report?

我正在设计一个 SSRS 报告,它需要为每个组生成自动编号。 数据来自 SQL 查询结果,如下所示:

Category        SubCategory       ItemName
------------------------------------------
Parent groupA   Parent group A1   item1
Parent groupA   Parent group A1   item2
Parent groupA   Parent group A2   item3
Parent groupA   Parent group A2   item4
Parent groupB   Parent group B1   item5
Parent groupB   Parent group B1   item6
Parent groupB   Parent group B2   item7
Parent groupB   Parent group B2   item8

我的报告布局:

1.Parent group A
   1.1 Parent group A1 
      1.1.1 Item 1
      1.1.2 Item 2
   1.2 Parent group A2
      1.2.1 Item 3
      1.2.2 Item 4
2. Parent group B
   2.1 Parent group B1 
      2.1.1 Item 5
      2.1.2 Item 6
   2.2 Parent group B2
      2.2.1 Item 7
      2.2.2 Item 8

我无法通过使用 RowNumber 和 RunningValue function 生成此规则,或者没有找到方法。 希望听到你的想法。 谢谢!

这有点冗长,但应该可以工作。

我所做的只是计算符号并将列值附加到他的末尾。 然后,您可以直接在报告中使用它。

我已将您的数据复制为表变量以供说明

DECLARE @t TABLE (Category varchar(30), SubCategory varchar(30) , ItemName varchar(30))
INSERT INTO @t VALUES 
('Parent groupA', 'Parent group A1', 'item1'),
('Parent groupA', 'Parent group A1', 'item2'),
('Parent groupA', 'Parent group A2', 'item3'),
('Parent groupA', 'Parent group A2', 'item4'),
('Parent groupB', 'Parent group B1', 'item5'),
('Parent groupB', 'Parent group B1', 'item6'),
('Parent groupB', 'Parent group B2', 'item7'),
('Parent groupB', 'Parent group B2', 'item8')

SELECT 
    *
    , CONCAT(DENSE_RANK() OVER(ORDER BY Category), '. ', Category) as CategoryID
    , CONCAT(
              DENSE_RANK() OVER(ORDER BY Category) , '.'
            , DENSE_RANK() OVER(PARTITION BY Category ORDER BY SubCategory), ' '
            , SubCategory
            ) as SubCategoryID
    , CONCAT(
              DENSE_RANK() OVER(ORDER BY Category) , '.'
            , DENSE_RANK() OVER(PARTITION BY Category ORDER BY SubCategory) , '.'
            , DENSE_RANK() OVER(PARTITION BY Category, SubCategory ORDER BY ItemName), ' '
            , ItemName
            ) as ItemID
    FROM @t

这给出了以下结果

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM