【发布时间】:2013-03-29 11:18:29
【问题描述】:
在我的废弃呼叫维度表中,我有 ID 1 代码 NO ,ID 2 代码 YES 我想根据调用是否使用连接被放弃,将这些 ID 加载到事实表中。
我遇到的问题是,我的数据库中的 Abandoned 值对于 NO 为 NULL,对于 YES 为 1。
所以当我加入时
INNER JOIN datamartend.dbo.Abandoned_Call_Dim
ON incoming_measure.Abandoned = Abandoned_Call_Dim.abandoned_code
没有结果?
对此有什么想法吗?
基本上需要的是:
如果度量中的废弃值为 null,我希望废弃维度中的废弃 ID 为 2,如果不为 null,则废弃 id 为 2
谢谢
【问题讨论】:
-
您是说
incoming_measure和Abandoned_Call_Dim表中都有NULL 吗?您能否显示更多查询,因为查询的其他部分可能是造成这种行为的原因 -
不,如果调用没有被放弃,maincall 表中只有一个空值。在废弃的暗淡中,未废弃的 id 为 3 在主表中,如果它被废弃,则为 1,在维度中为 2。我不知道如何将 maincall 中的值与维度 id 匹配?
-
你不能只用
ISNULL(MAINCALLTABLE.Abandoned,3)替换你的连接部分吗? -
嗯我试过了,但我似乎没有工作,这是个好主意。
-
您能否将整个查询添加到帖子中 - 我怀疑查询的另一部分是罪魁祸首。在 SELECT 的分组部分中可能是 NULL
标签: sql sql-server join data-warehouse fact-table