从无事实的事实表和/或垃圾维度报告 - 平坦的报告,没有聚合 - Kimball

时间:2015-02-24 22:17:08

标签: sql-server pivot-table data-warehouse cube dimensional-modeling

我正在尝试将一些无事实的事实表和/或垃圾维度表添加到Kimball样式的数据仓库中,但是我很难理解如何在将这些表添加到多维数据集并且多维数据集是例如,从Excel查询(数据透视表)。

以下是该方案:

物业服务公司提供按揭服务。当潜在客户有兴趣获得抵押贷款时,会打开一个案例,并在向客户提供抵押(和其他潜在产品)之前进行各种流程。

(对于每个案例,可能有多个业务流程由单独的事务性事实表(包含附加度量)建模,但我们不会关注这些,因为它们很容易建模)

我正在努力的是对案例流程本身进行建模(从业务的角度来看,当案件由抵押贷款经纪人推进时,这是所有事情的总称)。案例包含用户在OLTP系统中设置的各种标志(和文本字段)。用户希望能够报告案例,并列出所有这些标志,文本字段等的值,而不需要任何度量/聚合。 因此,如果我为标志使用无事实的事实表和垃圾维度,我们会有这样的:

DimDate

 DateKey     Date          Year     Month    etc. 
 20150101    01/01/2015    2015     1
 20150102    02/01/2015    2015     1
 20150103    03/01/2015    2015     1
 etc.

DimCustomer

 CustomerKey     CustomerName
 1               J Smith
 2               B Edwards
 3               A Davies
 etc.

DimCaseIndicator

 IndicatorKey     HasWillFlag     HasHomeInsuranceFlag
 1                True            True
 2                True            False
 3                False           True
 etc.

FactCase

 CaseOpenedDateKey  CaseSubmittedDateKey  IdCase(BusinessKey)  CustomerKey  IndicatorKey
 20150101           20150102              ABC1234              1            2
 20150101           20150101              ABC1235              2            3

现在,为了显示一个展平的报告(每个案例1行),我们可以直接在数据仓库中对上面的表运行以下SQL,如下所示:

 SELECT FactCase.IdCase,
        DimCustomer.CustomerName,
        DimIndicator.HasWillFlag,
        DimIndicator.HasHomeInsuranceFlag
        etc.
 FROM FactCase 
 JOIN DimCustomer on FactCase.CustomerKey = DimCustomer.CustomerKey
 JOIN DimIndicator ON FactCase.IndicatorKey = DimIndicator.IndicatorKey
 etc.

这会给我们:

 IdCase     CustomerName     HasWillFlag     HasHomeInsuranceFlag
 ABC1234    J Smith          True            False
 ABC1235    B Edwards        False           True

但是,如果上面的表包含在多维数据集中并且我们使用Excel查询多维数据集,我们将如何实现相同的输出? 当我尝试这样做时,Excel中的数据透视表想要聚合(这是正确的!),但我想要的是如上所述的平面报告。

0 个答案:

没有答案