在SSRS 2008中排序不起作用

时间:2013-03-12 22:33:32

标签: reporting-services ssrs-2008

我需要使用带有区域名称的SSRS 2008修改现有报告,它可能包含10个不同的区域。该区域只设置了一列,可能包含10个不同的值。我相信这是一个Tablix。目前,区域按字母顺序排序,但我必须对它们进行不同的排序,因此我根据所需的顺序在CASE语句中为每个区域分配了一个数字。然后,我按照列本身(tablix)中所需的顺序对区域进行排序,并在报告中按所需顺序对区域进行排序,但不幸的是,分配的数字在报告中而不是区域名称中。而不是

BF CF CO CL等......我明白了 报告标题中的1 2 3 4等。

CASE , 
WHEN teamgroup.Name = 'BF' THEN 1
WHEN teamgroup.Name = 'CF' THEN 2
WHEN teamgroup.Name = 'CO' THEN 3
WHEN teamgroup.Name = 'CL' THEN 4
WHEN teamgroup.Name = 'CN' THEN 5
WHEN teamgroup.Name = 'GA' THEN 6
WHEN teamgroup.Name = 'IN' THEN 7
WHEN teamgroup.Name = 'KY' THEN 8
WHEN teamgroup.Name = 'MD' THEN 9
WHEN teamgroup.Name = 'NF' THEN 10
   END AS Region

我尝试将teamgroup.name显示为region,然后使用Region_sort作为CASE语句的别名,但它不起作用。在Tablix属性中,我使用了sort by:region_sort,order是A到Z,但区域按字母顺序排序。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:5)

您可以以与显示内容不同的方式对Tablix进行排序。

  1. 您应该按照正常情况设置Tablix,并将区域作为显示值,这是teamgroup.name
  2. 使用tablix上的排序选项将根据您桌子的构成不起作用。最佳和最可靠的方法是在分组属性窗口中右键单击详细信息行并按选项编辑排序。
  3. 在这里,您可以编辑排序的表达式,我建议您使用switch函数将名称更改为数字,或者更好的是使用SQL region_Sort列(如果有的话)。
  4. 然后将订单设置为a到z。
  5. 如果您的Tablix中有群组,则需要对teamgroup.name地区/群组执行此操作,而不是详细信息。