如果数据具有层次结构,如何设计SSRS报表和SQL Server表?
我必须设计表和SSRS报告,其中包含以下格式的数据 请点击下面的URL下载excel表格 下载文件后,请参阅包含原始数据的选项卡。它列出了第行的所有数字和滚动总和(即状态“A-F”、“G-N”和“O-Z”),月份用列分隔 这里的问题是,月份应该基于当前月份动态生成。因此,现在报告显示了9月份的数据,但我不确定如何在数据库中存储未来月份的值,以及如何在报告中显示所有月份的数据 我应该创建包含所有未来月份的表,还是应该动态地提及“月份”列 请注意,USA states和rollover公式保持不变,我能够编写一个查询来生成states值如果数据具有层次结构,如何设计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公式保持不变,
我想到的数据库结构(&报告结构)在选项卡“示例报告”中可见。我只是在尝试您尝试过的方法。我认为您需要为月份创建列分组。只需尝试以下数据集作为参考
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格式的解压数据并使用矩阵报告。