如果数据具有层次结构,如何设计SSRS报表和SQL Server表?

如果数据具有层次结构,如何设计SSRS报表和SQL Server表?,sql,sql-server,reporting-services,ssrs-2008,ssrs-2012,Sql,Sql Server,Reporting Services,Ssrs 2008,Ssrs 2012,我必须设计表和SSRS报告,其中包含以下格式的数据 请点击下面的URL下载excel表格 下载文件后,请参阅包含原始数据的选项卡。它列出了第行的所有数字和滚动总和(即状态“A-F”、“G-N”和“O-Z”),月份用列分隔 这里的问题是,月份应该基于当前月份动态生成。因此,现在报告显示了9月份的数据,但我不确定如何在数据库中存储未来月份的值,以及如何在报告中显示所有月份的数据 我应该创建包含所有未来月份的表,还是应该动态地提及“月份”列 请注意,USA states和rollover公式保持不变,

我必须设计表和SSRS报告,其中包含以下格式的数据

请点击下面的URL下载excel表格

下载文件后,请参阅包含原始数据的选项卡。它列出了第行的所有数字和滚动总和(即状态“A-F”、“G-N”和“O-Z”),月份用列分隔

这里的问题是,月份应该基于当前月份动态生成。因此,现在报告显示了9月份的数据,但我不确定如何在数据库中存储未来月份的值,以及如何在报告中显示所有月份的数据

我应该创建包含所有未来月份的表,还是应该动态地提及“月份”列

请注意,USA states和rollover公式保持不变,我能够编写一个查询来生成states值


我想到的数据库结构(&报告结构)在选项卡“示例报告”中可见。

我只是在尝试您尝试过的方法。我认为您需要为月份创建列分组。只需尝试以下数据集作为参考

CREATE TABLE #TEMP_RAW_DATA
(
    N_id NUMERIC(18,0) IDENTITY(1,1),
    VC_Country VARCHAR(30),
    VC_States VARCHAR(50),
    D_Date DATE,
    I_Values INT
)

INSERT INTO #TEMP_RAW_DATA
(
    VC_Country,VC_States,D_Date,I_Values
)
SELECT 'USA','Alabama','09-01-2019',57 UNION ALL
SELECT 'USA','Alabama','10-01-2019',47 UNION ALL
SELECT 'USA','Alabama','11-01-2019',69 UNION ALL
SELECT 'USA','Alabama','12-01-2019',1 UNION ALL
SELECT 'USA','Alabama','01-01-2020',42 UNION ALL
SELECT 'USA','Hawaii','09-01-2019',80 UNION ALL
SELECT 'USA','Hawaii','10-01-2019',55 UNION ALL
SELECT 'USA','Hawaii','11-01-2019',19 UNION ALL
SELECT 'USA','Hawaii','12-01-2019',73 UNION ALL
SELECT 'USA','Hawaii','01-01-2020',76 UNION ALL
SELECT 'USA','Massachusetts','09-01-2019',20 UNION ALL
SELECT 'USA','Massachusetts','10-01-2019',74 UNION ALL
SELECT 'USA','Massachusetts','11-01-2019',30 UNION ALL
SELECT 'USA','Massachusetts','12-01-2019',36 UNION ALL
SELECT 'USA','Massachusetts','01-01-2020',53 UNION ALL
SELECT 'USA','Pennsylvania','09-01-2019',53 UNION ALL
SELECT 'USA','Pennsylvania','10-01-2019',17 UNION ALL
SELECT 'USA','Pennsylvania','11-01-2019',1 UNION ALL
SELECT 'USA','Pennsylvania','12-01-2019',13 UNION ALL
SELECT 'USA','Pennsylvania','01-01-2020',42 UNION ALL
SELECT 'USA','Virginia','09-01-2019',26 UNION ALL
SELECT 'USA','Virginia','10-01-2019',24 UNION ALL
SELECT 'USA','Virginia','11-01-2019',29 UNION ALL
SELECT 'USA','Virginia','12-01-2019',79 UNION ALL
SELECT 'USA','Virginia','01-01-2020',73

SELECT VC_Country,VC_States,DATENAME(MONTH,D_Date) VC_Month,
CASE 
    WHEN PATINDEX('[a-f]%',VC_States)>0 THEN 'A-F'
    WHEN PATINDEX('[g-n]%',VC_States)>0 THEN 'G-N'
    WHEN PATINDEX('[o-z]%',VC_States)>0 THEN 'O-Z'
END VC_Group,
SUM(I_Values) I_Values
FROM #TEMP_RAW_DATA
GROUP BY VC_Country,VC_States,
CASE 
    WHEN PATINDEX('[a-f]%',VC_States)>0 THEN 'A-F'
    WHEN PATINDEX('[g-n]%',VC_States)>0 THEN 'G-N'
    WHEN PATINDEX('[o-z]%',VC_States)>0 THEN 'O-Z'
END,DATENAME(MONTH,D_Date)

若你们有那个URL格式的原始数据,那个么你们必须在SSRS中使用Thangadurai.B格式的解压数据并使用矩阵报告。