• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

从维度表中设置事实表中的ID

sql 来源:Richard C 3次浏览

在我的维度表中为放弃的呼叫我有ID 1代码NO,ID 2代码YES 我想要根据是否将这些ID加载到事实表中该呼叫被放弃使用联接。从维度表中设置事实表中的ID

如何永远存在的问题,我的数据库中被遗弃的值是否为NULL,是否为1。

所以,当我加入

INNER JOIN datamartend.dbo.Abandoned_Call_Dim 
     ON incoming_measure.Abandoned = Abandoned_Call_Dim.abandoned_code 

它拉没有结果?

有关于此的任何想法?

基本上所需要的是:

我想从废弃尺寸废弃的ID为2,如果在度量abandonded值为null,如果不为空

感谢


===========解决方案如下:

弃ID 2您可以使用CASE WHEN子句来解决这个问题(或者ISNULL,但情况下是在不同的数据库引擎更便携)

INNER JOIN datamartend.dbo.Abandoned_Call_Dim 
     ON case when incoming_measure.Abandoned is null then '0' 
       else incoming_measure.Abandoned end 
      = case when Abandoned_Call_Dim.abandoned_code is null then '0' 
       else Abandoned_Call_Dim.abandoned_code end 

这将[R用0代替null。只要你没有0代码,你应该没问题。如果你这样做,尝试-1,或者你知道的其他值不在可能的代码集中。

另一件事,如果你有一个未知的代码集,是做的加入,并加入到做:

OR (incoming_measure.Abandoned is null and Abandoned_Call_Dim.abandoned_code is null) 

这在技术上不参加 – 它交叉连接空记录(只要只有一个空关键在被放弃的调用上很重要,你很好)。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)