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

ご覧のとおり、共通の列は 1 つもありません。これら 3 つのテーブルを同じ地理ディメンションにグループ化します。

それで、どうすればできますか?

また、この geography dim の使用は、たとえば顧客ディメンションなどの別のディメンションの場合です。クライアントの地理またはある都市のトップセールスマンに応じてクライアントの収益を知りたい場合です。

また、customer テーブルと salesperson テーブルの両方で、これら 3 つを外部キーとして見つけることができます。

4

3 に答える 3

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 テーブルが国、地域、および国の値ではなくコードを保持していると仮定します。

上記のコードは、必要な地理のディメンションを構築します。もちろん、追加の一意の都市、国、地域コードを顧客/販売員テーブルに追加する場合は、それをディメンションに追加する必要があります。これは単なる初期ロードです。3 つの修飾子のいずれかで null を考慮して、コードを変更する必要がある場合もあります。

于 2012-07-11T13:01:27.250 に答える
0

Based on you comment to paulsm4 you then want to use those tables that hold the linking information to join to each of the above 3 tables.

On the other hand if you really want to join just those three tables

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

于 2012-07-07T17:47:57.813 に答える
0

3 つのテーブルすべてで共有される「共通の列」は必要ありません。

テーブルの各ペアの間に「列列」が必要です。他にどのようにリンクしますか???

Q: 「国」と「都市」を結ぶ列はありますか? 「都市」に「国コード」列が必要です。

Q: 「地域」と「郵便番号」または「国」を関連付ける方法はありますか? 「はい」の場合: 問題は解決しました。フィールドをリストしてください。「いいえ」の場合...スキーマを変更する必要があります。

于 2012-07-07T17:36:25.830 に答える