0

我想使用 ssis 2008 创建一个地理维度。我有 3 个表源。

这是解释

Table 1 = Country: country code and country name 
Table 2 = Post code: post code and city name
Table 3 = Territory : Territory code and Territory name

这是数据的外观

[Table 1= Country]

      code name  
     ------------------
       US | United states 
       CA | Canada 

[Table 2= post code] 

      Code    city  
     ---------------
       1000  |  Paris
       2000  |  Niece

[Table 3= Territory]

       Code    name
      ----------------
       N    |   North
       S    |   south

如您所见,没有单个公共列,我想将这 3 个表分组在同一个地理维度中。

那么,我该怎么做呢?

另外,这个地理暗淡的使用将在另一个维度例如客户维度时使用。我们想根据客户的地理位置或某个城市的顶级销售人员来了解客户的收入。

在客户和销售人员表中,您都可以找到这 3 个作为外键。

4

3 回答 3

0

不需要所有三个表共享的“公共列”。

确实需要每表之间的“列” 。你还要怎么链接它们???

问:有没有把“国家”和“城市”联系起来的栏目?您应该在“城市”中有一个“国家代码”列。

问:有没有办法将“领土”与“邮政编码”或“国家”联系起来?如果“是”:问题已解决。请列出字段。如果“否”......那么您需要更改您的架构。

于 2012-07-07T17:36:25.830 回答
0

根据您对 paulsm4 的评论,您然后希望使用包含链接信息的那些表来加入上述 3 个表中的每一个。

另一方面,如果您真的只想加入这三个表

select * from Country full external join [Post code] on 'a' = 'a' full external join Territory on 'b' = 'b'

于 2012-07-07T17:47:57.813 回答
0
create table dim.geography (geoID int,citycode int, countrycode char(2),territorycode char(1))

insert into dim.geography (select city as citycode,country as countrycode, territory as territorycode from Customer union select city, country,territory from salesperson)

在这里假设 Customer 和 salesperson 表包含代码而不是国家、地区和国家/地区的值。

上面的代码将为您想要的地理位置构建一个维度。当然,如果您将任何额外的唯一城市、国家/地区代码添加到客户/销售人员表中,您需要将其添加到您的维度中。这只是一个初始负载。您可能还需要修改代码以考虑三个限定符中的任何一个中的空值。

于 2012-07-11T13:01:27.250 回答