SSAS分析出來的數據不對

arya_tec 2014-06-18 03:12:13
問題是這樣的:
公司要做一個溢領報表,cube介面如下圖:

現在的問題是維度iMoney選擇的是FactInventory中的Money的SUM函數。

MDX查詢語句如下:


sql查詢語句如下:


大家可以看到查出來的數據是不一樣的。請問這是什麽原因。在FactTransaction表就不存在此問題。OLAP分析出來的數據不對?
...全文
208 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
arya_tec 2014-06-19
  • 打赏
  • 举报
回复
問題找出來了,原來是union會過濾數據==
xiongnanbin 2014-06-19
  • 打赏
  • 举报
回复
引用 2 楼 darkor2 的回复:
[quote=引用 1 楼 aspnetx 的回复:] 看看是不是cube在process的时候有丢失的数据,外键对维度关联不上的时候。
哈士奇大哥居然來了,O(∩_∩)O哈哈~謝謝哈士奇大哥了。 這個基本原因我已經找到了。是我建立FactInventory表的SQL出了問題。 大哥幫我看下我的sql吧。這下面兩個sql居然查出來的數據不一樣。 sql 1: select * from (SELECT a.FK_Time, a.FK_Org, b.FK_Lob, a.FK_Sub, a.FK_Store, b.FK_Types, a.FK_Category, a.FK_Class, a.FK_Property, a.FK_Report, a.Quantity, a.Money, 1 AS FK_Customer FROM RMS.tFactInventory AS a LEFT OUTER JOIN RMS.tRelation AS b ON a.FK_Relation = b.PK_ID WHERE (a.FK_Report = 7) UNION SELECT a.FK_Time, a.FK_Org, a.FK_Lob, a.FK_Sub, a.FK_Store, b.FK_Types, a.FK_Category, a.FK_Class, a.FK_Property, a.FK_Report, a.Quantity, a.Money, a.FK_Customer FROM RMS.tFactInventory AS a LEFT OUTER JOIN RMS.tRelation AS b ON a.FK_Relation = b.PK_ID WHERE (a.FK_Report = 8) ) t where t.FK_Time ='2014-06-10' and t.FK_Report=7 查詢出7945. sql 2: select * from (SELECT a.FK_Time, a.FK_Org, b.FK_Lob, a.FK_Sub, a.FK_Store, b.FK_Types, a.FK_Category, a.FK_Class, a.FK_Property, a.FK_Report, a.Quantity, a.Money, 1 AS FK_Customer FROM RMS.tFactInventory AS a LEFT OUTER JOIN RMS.tRelation AS b ON a.FK_Relation = b.PK_ID WHERE (a.FK_Report = 7) ) t where t.FK_Time ='2014-06-10' and t.FK_Report=7 查詢出來的數據13913,居然多了。。。 這個不應該是一樣多的嗎? [/quote] 这两个怎么可能一样呢?你用union,你卡看是不是union下面的那条语句上面那条语句有维度一样但是度量数据不一样的,可以说是负数,用union之后你就把上面一部分数据冲销掉了。
arya_tec 2014-06-19
  • 打赏
  • 举报
回复
引用 1 楼 aspnetx 的回复:
看看是不是cube在process的时候有丢失的数据,外键对维度关联不上的时候。
哈士奇大哥居然來了,O(∩_∩)O哈哈~謝謝哈士奇大哥了。 這個基本原因我已經找到了。是我建立FactInventory表的SQL出了問題。 大哥幫我看下我的sql吧。這下面兩個sql居然查出來的數據不一樣。 sql 1: select * from (SELECT a.FK_Time, a.FK_Org, b.FK_Lob, a.FK_Sub, a.FK_Store, b.FK_Types, a.FK_Category, a.FK_Class, a.FK_Property, a.FK_Report, a.Quantity, a.Money, 1 AS FK_Customer FROM RMS.tFactInventory AS a LEFT OUTER JOIN RMS.tRelation AS b ON a.FK_Relation = b.PK_ID WHERE (a.FK_Report = 7) UNION SELECT a.FK_Time, a.FK_Org, a.FK_Lob, a.FK_Sub, a.FK_Store, b.FK_Types, a.FK_Category, a.FK_Class, a.FK_Property, a.FK_Report, a.Quantity, a.Money, a.FK_Customer FROM RMS.tFactInventory AS a LEFT OUTER JOIN RMS.tRelation AS b ON a.FK_Relation = b.PK_ID WHERE (a.FK_Report = 8) ) t where t.FK_Time ='2014-06-10' and t.FK_Report=7 查詢出7945. sql 2: select * from (SELECT a.FK_Time, a.FK_Org, b.FK_Lob, a.FK_Sub, a.FK_Store, b.FK_Types, a.FK_Category, a.FK_Class, a.FK_Property, a.FK_Report, a.Quantity, a.Money, 1 AS FK_Customer FROM RMS.tFactInventory AS a LEFT OUTER JOIN RMS.tRelation AS b ON a.FK_Relation = b.PK_ID WHERE (a.FK_Report = 7) ) t where t.FK_Time ='2014-06-10' and t.FK_Report=7 查詢出來的數據13913,居然多了。。。 這個不應該是一樣多的嗎?
arya_tec 2014-06-19
  • 打赏
  • 举报
回复
引用 3 楼 xiongnanbin 的回复:
这两个怎么可能一样呢?你用union,你卡看是不是union下面的那条语句上面那条语句有维度一样但是度量数据不一样的,可以说是负数,用union之后你就把上面一部分数据冲销掉了。[/quote] 不是,就是union上面的數據就有重複的,直接給沖掉了用union就自動去重了。
哥本哈士奇 2014-06-18
  • 打赏
  • 举报
回复
看看是不是cube在process的时候有丢失的数据,外键对维度关联不上的时候。

595

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧