一对多查找,转换为一对一维度



我很难弄清楚如何将事务数据库中的一对多表结构转换为数据仓库的一对一维度。

在交易数据库中,数据结构如下:

根记录(Parent_ID(

查找表"许多父母ID"(Patent_ID,Child_ID(

参考表(Child_ID,Name(

加入我的参考表会带回一个看起来像这样的数据集:

╔═════════════╦═══════════╦══════════╦════════════╗
║ Root_ID     ║ Root_Code ║ Child_ID ║ Child_Name ║
╠═════════════╬═══════════╬══════════╬════════════╣
║           1 ║ 1000      ║       22 ║  Name 1    ║
║           1 ║ 1000      ║       23 ║  Name 2    ║
║           1 ║ 1000      ║       24 ║  Name 3    ║
║           1 ║ 1000      ║       25 ║  Name 4    ║
║           2 ║ 1150      ║       67 ║  Name 5    ║
║           2 ║ 1150      ║       68 ║  Name 6    ║
║           2 ║ 1150      ║       69 ║  Name 7    ║
║           3 ║ 2019      ║       11 ║  Name 8    ║
║           3 ║ 2019      ║       12 ║  Name 9    ║
║           5 ║ 2010      ║       91 ║  Name 10   ║
║           5 ║ 2010      ║       92 ║  Name 11   ║
║           5 ║ 2010      ║       93 ║  Name 12   ║
║           5 ║ 2010      ║       94 ║  Name 13   ║
║           5 ║ 2010      ║       95 ║  Name 14   ║
║           5 ║ 2010      ║       96 ║  Name 15   ║
║           6 ║ 5010      ║       33 ║  Name 16   ║
╚═════════════╩═══════════╩══════════╩════════════╝

我在我的维度中想要知道的是,Root_ID(1(具有Child_ID(22,23,24,25(的值,并且能够使用维度上生成的键来引用它。

请记住,我永远无法预测会有多少子记录,所以在我的维度中创建X个列不是一个选项。

我相信一个比我聪明的数据仓库头脑知道如何正常处理这件事。

为了说明所需的结果:

事实记录(Dimension_Root_Key=1(

尺寸(图例1、名称1、名称2、名称3、名称4(

原来我应该多学习一点。我已经学会了"桥接"表的命名法。

知道金球小组有一些很棒的演示如何实现我想要的

最新更新