0

我目前正在填充事实表。我已经填充了维度表。time我已经填充了事实表 ( , )中的两列,abandoned但我正在努力填充第三维键,这是call type键。这样做的原因是要计算出许多属性来计算密钥。

维度表用于调用工作类型。它有三列,它们是:

 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 语句,但不确定代码如何在连接上工作。

4

1 回答 1

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
于 2013-04-03T12:58:32.213 回答