2013-04-03 65 views
0

我目前正在填充事實數據表。我已經填充了維度表。我已經填充了事實表中的兩列(time,abandoned),但我正努力填充第三維密鑰,即call type密鑰。其原因是要計算出許多屬性來計算密鑰。將維度ID加入事實數據表

維表用於呼叫工作類型。它有三列,它們是:

CallWorkTypeID - CallWorkTypeCode - CallWorkTypeName. 

示例值是

1 - OutAttemp - Outbound Attempt 

的問題,我有工作了呼叫類型的名稱,這裏是例如這方面的工作出了名的一個示例代碼選擇出站嘗試呼叫。

SELECT * from outgoing_measure om 
WHERE om.CTICallType_ID = 3 
AND om.CTIAgentCallType_ID = 1 
AND om.Abandoned = 1 
AND om.AnsTime IS NULL 
AND om.CallState IS NULL 

有19個不同的情況像這樣具有相同的列,但每個呼叫類型的值不同。

任何人有任何想法?我想過可能是CASE語句,但不知道代碼如何在連接上工作。

回答

0

如果您還沒有映射表或規則表來幫助您,則CASE語句對此非常有用。如果維度成員已放入維度表中,則不需要進行任何聯接。你可以把它們放在案件中。

UPDATE f 
set thirddimensionforeignkey = CASE 
WHEN (cticalltype = 3 and all that other stuff is true) THEN 1 
WHEN (some other stuff is true) THEN 2 
WHEN (rest of the stuff is true) THEN 19 
--ELSE unknownmember 
END 
FROM yourfacttable as f 
相關問題