1

想知道是否可以在处理后从 SSAS 多维数据集中删除时间维度条目,例如“DEC-2014”。

Oracle 查找表提供时间维度值,但每个相应月份的数据可能尚不可用。希望在处理后手动删除时间维度,但不从基础 Oracle 表中删除。

Time
 -> All Time
    -> 2014
        -> Q1 2014
            -> JAN-2014
            -> FEB-2014
            -> MAR-2014
        -> Q2 2014
            -> APR-2014
            -> MAY-2014
            -> JUN-2014
        -> Q3 2014
            -> JUL-2014
            -> AUG-2014
            -> SEP-2014
        -> Q4 2014
            -> OCT-2014
            -> NOV-2014
            -> DEC-2014 (Would like to delete this entry)
4

1 回答 1

0

在项目的数据源视图 (DSV) 中执行此操作。如果您的数据源表当前以表的形式出现,请右键单击 DSV 中的日期维度表并选择“替换表>使用新命名查询...”并将您的 where 子句设置为以下内容:

WHERE YEAR(DateField)*100 + MONTH(DateField) <= YEAR(GETDATE())*100 + MONTH(GETDATE()) 

这将从您的日期维度中排除当前月份之后的所有月份。

请记住,如果事实表中排除月份的值具有日期维度的外键,则在找不到键时会导致处理错误。我会将您的事实表 ETL 更改为不接受当前月份之后的行,以考虑这种可能性。

编辑:另一个可能的解决方案是:

WHERE DateKey BETWEEN (SELECT MIN(DateKey) From FactTable) AND (SELECT MAX(DateKey) From FactTable)

如果您的事实表中没有违规月份的任何记录,则此方法有效。

于 2014-11-07T15:16:59.913 回答