[英]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.