如何在SSAS中设置层次结构维度

时间:2014-10-31 17:53:06

标签: sql-server ssas bids

我是BIDS的新手,并试图弄清楚如何正确设置和绑定维度层次结构。在我的项目中,我有一个查找表,时间表只有00:00:00到23:59:59。查找表中的前两行考虑了可能存在的空值或者如果时间度量超过24小时。注意:这不是用于选择时间的时间表,而是用于计算时间范围。

LookupTable

在查看行时,您可以看到运行分钟并运行第二列。每秒的运行秒数会发生变化,但运行时间将保持为零,直到达到一分钟。

我试图创建一个heiarchy,允许用户通过运行第二个,运行分钟或按时间(" TheTime列)来查看记录数量

我遇到问题时输出似乎是分组并计算秒和时间,但每分钟都会显示一列。

output

我希望完成的是在列出只有一列0列的输出中然后向下钻取我会看到多个条目用于运行秒,然后是多个条目用于TheTime。

我的维度设置如下:

dimension

将尺寸关系设置为

dim2

以及设置为运行分钟的维度使用的粒度

granularity

对于层次结构中的每个维度,我将键映射到SpanID(因为它是查找中唯一的唯一值)。将值设置为相应的字段。

我尝试过更换绑定以及维度内的关系但是没有运气让输出以所需的方式呈现。在sql中运行查询我可以看到数字匹配到计数但我似乎想知道如何将所有运行的分钟组合在一起。在维度的每个属性的属性中,我确实启用了鼓励分组。

我很欣赏任何关于我失踪或做错的建议或指示

-cheers

更新

@Michael - 是对于每个字段TheTime,RunningMinute和RunningSeconds我将密钥设置为SpanId。如果我将Key设置为根字段名称(RunningMinute Key = RunningMinute,我会得到以下OLAP错误:

这是我可以获得维度的唯一方法。
Errors in the OLAP storage engine: A duplicate attribute key has been found when processing:
Table: 'dbo_dimTimeSpan', 
Column: 'RunningSecond', 
Value: '0'. The attribute is 'Running Second'.

1 个答案:

答案 0 :(得分:0)

感谢迈克尔指出我正确的方向。我不会因此而受到赞扬,但我会提供更多信息,说明我采取了哪些措施来纠正。这个。迈克尔在声明中是正确的,即使用另一个属性作为键将导致我看到的列的重复。为了纠正这个问题,我转到了每个属性,并将属性中的KeyColumns值设置为:

RunningMinute = RunningMinute
RunningSecond = RunningSecond
TheTime = SpanId (this was the main key)

这引起了第二个问题。由于我的查找表在runningsecond和runningminute列中具有空值,因此我收到了处理错误。为了纠正这个问题,我必须扩展KeyColumns的属性部分,并将NullProcessing属性更改为Unknown。然后,这允许我处理和部署多维数据集