每月动态表/输出报告

时间:2017-01-30 16:44:09

标签: sql-server tsql database-design reporting-services

我有一个表格和报告我需要创建,我不知道如何围绕如何使每个月以正确的顺序显示输出。

使用SQL Server 2012和SSRS 2016作为输出,我需要创建一个滚动报告,显示过去12个月及其相应的值。每个月前12个月都会下降。

什么是最好的表设计来处理这样的事情,你如何控制输出在前12个月下降并保持滚动?

所需输出的示例如下所示,但下个月我需要放弃Dec - 15并添加Jan - 16但是按列降序排列,以便上个月始终是最后一个月在报告中。

-- Desc     |   DEC - 15 |  Jan - 16 | Feb - 16 | restofmonths| Nov 16 | Dec 16|
********************************************************************************
-- Loss     |   1,000   |   2500    | 1700      | 123         |  4565  |  3433 | 
-- Expense  |   2,000   |   3200    | 900       | 456         |  1223  |  4445 |
-- Reserve  |   3,000   |   3300    | 400       | 789         |  4747  |  4444 |

1 个答案:

答案 0 :(得分:0)

您需要使用矩阵。

在数据集中,添加2列(如果尚未存在)。第一个是列标题,第二个是列排序顺序。像这样的东西

    [Header] = LEFT(DATENAME(MONTH, DateValue), 3) + ' - ' + RIGHT(YearNum, 2)
,   [HeaderSort] = CONVERT(VARCHAR, YEAR(DateValue)) + RIGHT('0' + CONVERT(VARCHAR, DATEPART(MONTH, DateValue)), 2)

将矩阵列组设置为Header值,并将排序顺序设置为HeaderSort值。