sql server 数据仓库中维度的排序

Wil*_*iam 1 data-warehouse ssas sql-server-2012 dimensional-modeling

构建并部署了一个具有日期维度的简单多维数据集。该维度具有诸如月份中的某天之类的内容。我该如何排序?它总是在报告中显示为 1, 10, 11, 12, ... 19, 2, 20, 21

设计。

DimDate(3 列)

  • 日期 ID 键
  • 日期 DATETIME {值 1/1/2000、1/2/2000 等}
  • DAY VARCHAR(2) {值 1,2,3,4,5,6,7,ect}

FactAppointment(一栏)

  • DateID {值键变暗}

我将 dims 排序列设置为键或日期,但两者都不起作用。

当连接 excel 或任何其他双工具并且日期 dim 是一列时,一个简单的计数是日期未排序的值。

图片:列标题未正确排序。1, 10,11,12,...,19,2,20

在此处输入图片说明

bil*_*nkc 6

Analysis Services 会将维度属性的数据类型设置为与源列相同。它完全按照您的要求进行排序。你的日子被声明为一个字符类型。因此,它们将根据字符排序 (1, 10, 11) 而不是数字排序 (1,2,3) 进行排序。

您没有指定这是多维模型还是表格模型,但两者都支持排序顺序属性。在需要显示字符数据(如月份名称)但需要按月份顺序排序的情况下,我将使用 MonthName 和 MonthSortOrder 等列,而不向使用工具显示 SortOrder 后缀字段。

在多维模型中,另一种选择是编辑数据源视图并用命名查询替换源表,该查询包括对“Day”列的强制转换为整数。