如果您選取多個來源,您也需要指定這些直欄的列要如何連結到表格的結合中。您可以使用 SQL Assist 來定義結合。
您必須在定義結合之前,先將來源鏈結到步驟上。
若要結合來源表格:
如此會開啟 SQL Assist。
該直欄即會從可用的直欄清單移到選取的直欄清單中。
按一下 >>,將可用的直欄清單中的全部直欄新增到選取的直欄清單中。
如果直欄中有相容的資料類型,則會顯示一條連接直欄的灰線,此時可以使用「結合」按鈕。
如果直欄中沒有相容的資料類型,則在視窗底端的狀態區中會顯示錯誤訊息。
SQL Assist 會在所選取的直欄之間畫一條紅線,表示表格已結合到該直欄。
若要除去結合:
如此即會關閉 SQL Assist。
要訣: | 只有來源表格存在時,您才能使用「SQL 陳述式」頁的測試按鈕。如果您指定資料倉儲中心來建立表格,則必須將鏈結到那些作為目標表格之表格的步驟提昇為測試模式,才能建立表格。 |
如此即會關閉「步驟內容」筆記本。
在許多生產環境中,來源資料都含有編碼資訊。例如,您可能會在整個資料庫中,用某些字碼來參照一些組件號碼表。您也有一個負責將組件號碼關聯於各組件的序號與說明的表格。在這些狀況下,您要讓倉儲中的資訊能包含各組件的名稱和說明。為達到這個目的,您必須將含有編號組件號碼的來源資料和解碼表結合起來。
首先,您必須定義此解碼表和編碼產品編號表,使它們成為倉儲來源的一部份。之後,再將那些表格選取為步驟的來源表格。然後,您在 SQL Assist 的「結合」頁上按一下結合,以結合這些表格。
例如,某月份直欄內的資料是以數值編碼,而您想要將這個資料轉換成含有月份縮寫的字串。您可以發出下列陳述式:
CASE TBC.ORDER_HISTORY.ORDERMONTH WHEN 1 THEN 'Jan' WHEN 2 THEN 'Feb' WHEN 3 THEN 'Mar' WHEN 4 THEN 'Apr' WHEN 5 THEN 'May' WHEN 6 THEN 'Jun' WHEN 7 THEN 'Jul' WHEN 8 THEN 'Aug' WHEN 9 THEN 'Sep' WHEN 10 THEN 'Oct' WHEN 11 THEN 'Nov' WHEN 12 THEN 'Dec' END
結合是預設為內部結合。您也可以按一下 SQL Assist 之「結合」頁上的結合類型,來要求其它型類的結合。下列是可用的結合類型:
如果資料庫支援 OUTER JOIN 關鍵字,您可以擴充 Inner Join,來新增與其它表格沒有相符列的表格其中的列。
例如,您要結合兩個表格來取得每個部門經理的姓氏。第一個表格是「部門」表格,列出每個部門經理的員工編號。第二個表格是「員工」表格,列出員工編號和每一位員工的姓氏。
不過,有些部門沒有經理,這時,部門經理的員工編號是空值。如果要併入所有部門,而不論其是否有經理,或是有經理時,也不論其經理姓氏,這時,您會產生一個 Left Outer Join。 Left Outer Join 會併入第一個表格中符合第二個表格的列或是空值的列。它會產生如下的 SQL 陳述式:
SELECT DEPTNO, DEPTNAME, EMPNO, LASTNAME FROM DEPARTMENT LEFT OUTER JOIN EMPLOYEE ON MGRNO = EMPNO
Right Outer Join 與 Left Outer Join 一樣,不過,它是併入第二個表格中符合第一個表格的列或空值的列。 Full Outer Join 則會併入兩個表格的相符列和空值列。
例如,您有兩個表格,「表格 1」和「表格 2」,資料如下:
表格 1 | |
---|---|
直欄 A | 直欄 B |
1 | A |
2 | B |
3 | C |
表格 2 | |
---|---|
直欄 C | 直欄 D |
2 | X |
4 | 2 |
您指定結合條件為「直欄 A」=「直欄 C」。不同結合類型的結果表格如下所示:
直欄 A | 直欄 B | 直欄 C | 直欄 D |
---|---|---|---|
2 | B | 2 | X |
直欄 A | 直欄 B | 直欄 C | 直欄 D |
---|---|---|---|
1 | A | NULL | NULL |
2 | B | 2 | X |
3 | C | NULL | NULL |
直欄 A | 直欄 B | 直欄 C | 直欄 D |
---|---|---|---|
2 | B | 2 | X |
NULL | NULL | 4 | 2 |
直欄 A | 直欄 B | 直欄 C | 直欄 D |
---|---|---|---|
1 | A | NULL | NULL |
2 | B | 2 | X |
3 | C | NULL | NULL |
NULL | NULL | 4 | 2 |
如果您指定值 (a,c),會得到下列結果:
1 |
2 |
3 |
4 |
您可以產生一種星形結合 (Star Join),它是由星狀綱目來定義之來源表格的結合。 星狀綱目是一種由下列表格類型組成的特殊設計:
例如,如果您有一項銷售書籍的郵購業務,則您會有「客戶」、「書籍」、「型錄」和「會計年度」等維度表格。 事實表格則含有在該會計年度期間,每個客戶在各個型錄中所訂購之書籍的相關資訊。
每個維度表格都有一個主要鍵,它是您選取的一或多個直欄,用以識別表格中的某一列。 事實表格則含有外來鍵,對應於維度表格內的各個主要鍵。 外來鍵是表格中的一個直欄,它的容許值必須是另一個表格的主要鍵。
當您要求星形結合時,資料倉儲中心會將維度表格的主要鍵和事實表格的外來鍵結合起來。 在前面的範例中,「客戶」表格的主要鍵是「客戶編號」,每本書的主要鍵則是它的「書籍編號 (ISBN)」。每個表格中的每一項訂購中,都會有「客戶編號」和「書籍編號」這兩個外來鍵。星形結合會將客戶與書籍的相關資訊和各個訂購項目結合起來。
在資料倉儲中心中定義主要鍵及外來鍵的相關資訊,請參閱定義倉儲目標。定義星狀綱目並將其匯至 OLAP Integration Server 的相關資訊,請參閱從資料倉儲中心內建立星狀綱目。