SSRS报告中的月份表示错误

时间:2016-09-20 08:35:49

标签: visual-studio reporting-services

我目前正在运行SSRS报告,其中一个列标题称为[MonthName] - 报告当前正在生成报告,其中的月份按字母顺序排列,如4月,8月,12月等。

如何让报告按照1月,2月,3月等顺序排列

我已尝试过按月名称,但这似乎没有给我带来任何快乐,有人可以给我一个朝正确方向转向

非常感谢 丹

4 个答案:

答案 0 :(得分:0)

在排序属性上使用此表达式。我假设您的数据是完整的月份名称。

=SWITCH(Fields!MonthName.Value="January",1,
Fields!MonthName.Value="February",2,
Fields!MonthName.Value="March",3,
Fields!MonthName.Value="April",4,
Fields!MonthName.Value="May",5,
Fields!MonthName.Value="June",6,
Fields!MonthName.Value="July",7,
Fields!MonthName.Value="August",8,
Fields!MonthName.Value="September",9,
Fields!MonthName.Value="October",10,
Fields!MonthName.Value="November",11,
Fields!MonthName.Value="December",12)

修改:添加了另一种解决方案。

另一种方法是将Monthnumber字段添加到数据集中。 SQL或数据集属性中的用例语句>字段>添加>把上面的表达。将此字段命名为Monthnumber,然后按Monthnumber对Tablix进行排序。

答案 1 :(得分:0)

将月份的数字表示添加到基础查询中的数据集中,或作为计算列。这避免了冗长的case / switch语句,这会使你的代码难以阅读。

SQL

select datepart(month, (@month_name + ' 01 1900')) 'month_number'

计算列表达式

=Month(CDate(Fields!month_name.Value.ToString + " 01 1900"))

答案 2 :(得分:0)

如果[dt]字段是DATETIME或DATE字段,只需按ORDER BY:

RewriteCond %{REQUEST_URI} /[^.]+[^/](|/)$ 
RewriteRule ^(.*)$ /index.php?variable=$1 [NE]

答案 3 :(得分:0)

@ Dan-Tracey

对于按时间顺序排列的月份顺序,请将此子句添加到您的选择语句中: Month(SaleDate)作为MonthSort

对于财政年度订单,请将此子句添加到您的选择语句中: 月份(销售日期)<= 3则案例月份(销售日期)+9其他月份(销售日期)-3结束时为MonthSort

然后在SSRS中 转到底部的列组,选择下拉列表,然后在“排序依据”中从查询中选择MonthSort列

sort by month name