SSAS Tabular 数据表关系与join的映射

才想起来总结这两天发现的一个有趣的现象:

在SSAS Tabular 模型中建立了关系之后,在excel中分析发现:

产品库龄作为量值:Aging Stock:=sum([DISTRIBUTOR_STOCK])以 区域维度Distributors.[Distributor code] +销售渠道维度Products.[PN]/Products.[Channel Mode]+时间维度Times.[YEAR]/Times.[YEAR MONTH]

YEAR 点击筛选,值选择2016年~

以以上维度进行透视表分析时,channelMode出现空值,即vw_FS_DIST_AGING_STOCK产品有库存,却没有销售渠道信息

说明:因为Channel Mode并不是内联关系,是Products的一个维度【列】而已,由使用者自行拉取,在模型关系没有错误的情况下,应该是数据出现的问题!

说明事实表与Products关联的时候,Products.[Channel Mode]出现了null值!

以下是模型关系:

事实表

库龄表:vw_FS_DIST_AGING_STOCK  度量值DAX函数后:Aging Stock:=sum([DISTRIBUTOR_STOCK])

维度表:

产品表:Products / 日期表:Times / 区域表:Distributors

关系:

 

 

编写sql代码查询:

SELECT DISTINCT  SUM(DISTRIBUTOR_STOCK),ITEM_CHANNEL_MODE FROM vw_FS_DIST_AGING_STOCK A 
INNER JOIN CB_PRODUCT B      ---INNER JOIN-- 
ON A.ITEM_CODE=B.Part_Number  
where B.ITEM_CHANNEL_MODE is null
group by ITEM_CHANNEL_MODE

 

 请注意这里是:inner join ,以下是查询结果-->并没有任何记录!

感觉很奇怪是吧,如果试一试LEFT JOIN呢?<数据不一致是因为一个是测试库,一个是正式库,请忽略!>

这样就很容易说通了,以下是sql查询:

SELECT DISTINCT  SUM(DISTRIBUTOR_STOCK),ITEM_CHANNEL_MODE,DISTRIBUTOR_CODE FROM vw_FS_DIST_AGING_STOCK A 
LEFT JOIN CB_PRODUCT B  --LEFT JOIN---
ON A.ITEM_CODE=B.Part_Number
INNER JOIN CB_DATE C ON A.YYYYMMDD=CONVERT(nvarchar(8),C.[DATE],112)
WHERE DISTRIBUTOR_CODE='DC'
-- AND B.ITEM_CHANNEL_MODE =''--AND B.ITEM_CHANNEL_MODE IN ('CON','KAB','SMB',NULL) 
AND LEFT(C.CURRENT_YEAR, 4) + '/' + LEFT(C.MONTH, 3)='2016/Jan'
GROUP BY ITEM_CHANNEL_MODE,DISTRIBUTOR_CODE

 

查询结果:

换为inner join之后的效果:

SELECT distinct a.ITEM_CODE,b.Part_Number,b.ITEM_CHANNEL_MODE,DISTRIBUTOR_STOCK,DISTRIBUTOR_CODE FROM vw_FS_DIST_AGING_STOCK A 
left JOIN CB_PRODUCT B ON A.ITEM_CODE=B.Part_Number
INNER JOIN CB_DATE C ON A.YYYYMMDD=CONVERT(nvarchar(8),C.[DATE],112)
WHERE DISTRIBUTOR_CODE='DC' --AND B.ITEM_CHANNEL_MODE =''--AND B.ITEM_CHANNEL_MODE IN ('CON','KAB','SMB',NULL) 
AND LEFT(C.CURRENT_YEAR, 4) + '/' + LEFT(C.MONTH, 3)='2016/Jan'

 

 查询结果会发现有很多这样的数据;

 

通过以上验证分析,

目前还没有找到资料验证:

SSAS Tabular模型中,关系建立之后对应的是sql查询中的LEFT JOIN,这是因为事实表中的数据通过关联维度之后有匹配不上的数据字段就会设置为null值!

 

posted @ 2016-03-04 17:40  依旧一生有你  阅读(672)  评论(0编辑  收藏  举报