我正在設計一個 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 函式生成此規則,或者還沒有找到方法。希望聽到你的想法。謝謝!
uj5u.com熱心網友回復:
這有點冗長,但應該可以作業。
我在這里所做的只是計算符號并將列值附加到末尾。然后您可以直接在報告中使用它。
我已將您的資料復制為表變數以供說明
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
這給出了以下結果

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/372740.html
標籤:视觉工作室 报告服务 ssrs-2012 ssrs-tablix 报表生成器
上一篇:VisualStudio:構建純靜態C 庫(“無依賴關系”)
下一篇:洗掉mysql資料庫中的重復項
