2016-09-20 71 views
0

我正在运行SSRS报告,其中一个列标题被称为[MonthName] - 报告当前正按照字母顺序生成报告,因此4月,8月,十二月等月份在SSRS报告中以错误顺序表示

我怎样才能得到的报告是在一月,二月,三月等

我已经试过ORDER BY MONTHNAME但这似乎并没有给我任何喜悦的顺序,可能有人给我请向正确的方向转向

非常感谢 丹

+0

你可以发表你的查询或采样数据。 –

+0

下面是该查询: SELECT DT,WeekCommencing,周,WeekofMonth,星期,月名将,今年,网站,小组,工作小组,客户,流程,Calls_Offered,Calls_Answered FROM [LB ODS] .WorkCalendarV2Emails WHERE(网站( @Site))AND(Data_Label IN(@DataLabel))和(dt> = @stdate)AND(dt <= @enddate) –

+0

我建议你在查询中使用ORDER BY,然后在SSRS上删除排序我不知道你的数据,但是我阅读你的专栏名称,我认为你应该订购BY DATEPART(MM,DT) - 假设dt是日期时间值 –

回答

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,然后按月份编号对Tablix进行排序。

+0

感谢Aldrim, 我已经把它放在我的tablix属性的排序部分,但没有改变,它仍按字母顺序排列 谢谢 –

+0

您是否尝试将其放入行组下的“详细信息”部分?它在设计师的底部。你应该选择Tablix来查看这个。 – Aldrin

+0

也尝试从您的查询中删除ORDER – Aldrin

0

在基础查询中将月份的数字表示添加到数据集,或者将其作为计算列。这避免了冗长的大小写/开关语句,这会使您的代码难以阅读。

SQL

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

计算列表达式

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

如果[DT]字段是一个DATETIME或DATE域,只是ORDER BY是:

SELECT dt 
    , WeekCommencing 
    , [Week] 
    , WeekofMonth 
    , [DayofWeek] 
    , [MonthName] 
    , [year] 
    , [Site] 
    , Team 
    , SubTeam 
    , Client 
    , Scheme 
    , Calls_Offered 
    , Calls_Answered 
FROM [LB ODS].WorkCalendarV2Emails 
WHERE (Site IN (@Site)) 
    AND (Data_Label IN (@DataLabel)) 
    AND (dt >= @startdate) 
    AND (dt <= @enddate) 
ORDER BY dt