2016-08-02 62 views
0

社區,根據Teradata中的關係表合併兩個表

我得到了測試Teradata數據的任務。來自另一個領域,我想請求你的幫助。

所以我有三個表:

  • Zus0ID1ID2
  • Zus1ID1
  • Zus2ID2

現在我需要根據ID加入Zus1Zus2一世信息在Zus0。 我得到的問題是Zus0中顯示的ID1Zus1中的列名稱和格式不同。

像這樣:

  • ID1Zus1: 「6123421」; --column命名IDZ
  • Zus0
  • ID1:「000006123421」; - 列名爲IDY

現在我想加入基於在Zus0的關係,你知不知道我該怎麼辦,這兩個表?

+0

這兩列的數據類型是什麼?除數字外還有其他角色的機會嗎? – dnoeth

+0

'Zus0'中的列是否總是前導0? – Andrew

回答

0

假設ID是所有數字和問題僅僅是在存儲爲類似VARCHAR的那些前導零:

SELECT b.id1, c.id2 
FROM Zus0 a 
INNER join Zus1 b on CAST(b.id1 as BIGINT)=CAST(a.id1 as BIGINT) 
INNER join Zus2 c on CAST(c.id2 as BIGINT)=CAST(a.id2 as BIGINT) 

事實上你可能還需要轉換領域的兩套是一個他們已經是數字。由於您正在投射連接,因此如果兩個字段都是數字並且不需要轉換,它的速度也會比它慢。

+0

其實,如果你正在做這個測試:相同的信息存儲不同的事實應該是一個測試失敗。最好現在解決它,而不是像這樣讓一些東西展開 –