2014年5月14日 星期三

[PowerPivot]無法在要求的方向建立關聯性。當您按一下建立時,將會反轉關聯性的方向。

        情況是這樣的,我不想藉由資料庫去Join資料表,剛好看到PowerPivot似乎可以幫我這個忙,只要建立關聯性後,公式列用RELATED資料表的欄位即可,於是就來試試看,那原本有三張資料表:Source、Transactions及Players,都是由Id欄位建立關聯,請注意箭頭方向,此時我多新增了一張資料表Login



        當我要開始建立Source到Login的關聯,就如下圖紅色箭號的方向那樣拖曳uid建立關聯,PowerPivot並沒有報錯喔,但是請注意下圖藍色箭號的方向,竟然是由Login到Source耶,竟然相反


        由上方設計工具列裡點擊管理關聯性,跳出如下視窗,關聯的方向真是相反的,那我編輯它


        試圖修正成正確的關聯方向,由Source關聯到Login,此時終於出現警示訊息了

        無法在要求的方向建立關聯性。當您按一下建立時,將會反轉關聯性的方向。


        因為只是警示訊息而已,不是錯誤訊息,很容易讓人忽略,此時若去Source資料檢視那邊,企圖加入關聯資料行時,終於出現錯誤訊息了

        資料行'Login[login_count]'可能不存在,或與目前內容中可用的任何資料表都沒有關連性。


        這錯誤訊息非常有用,因為完全無法理解,資料行怎麼可能不存在!怎麼可能沒關聯性!

        而且我這次用PowerPivot的目的只是要幫我Join資料表而已,誰去Join誰我並不關心,我只是要產生類似反正規化的結果而已,但竟然出錯,往回仔細看才發現方向性的問題,進而去找為什麼?

         後來參考Working with relationships in PowerPivot & SSAS BISM Tabular此篇才找到解答,真正的錯誤其實是Login資料表有重複值而已!

         就像是星狀結構裡,Dimension資料表不可以有重複的值囉!

          之後我又參考連結的簡單例子試了一下,故意多放一筆一樣的以製造重複,在我拉關聯性時,竟然出現了有用的錯誤訊息了,就不讓我建立關聯喔

         無法建立關聯性,因為每個資料行都包含重複的值。請至少選取一個只包含唯一值的資料行。



          很怪吧,有時候會出現正確的錯誤,有時候又不會,以後有時間再去探究吧!


     
zh-CN → zh-TW
無法在要求的方向建立關聯性。當您按一下建立時,將會反轉關聯性的方向。

2 則留言:

  1. 版主大大你好,很高興能夠搜尋到您這篇中文文章!!

    那想請教一下,如果說在POWERPIVOT裡面,要建立關聯性的話

    其中一張table的資料行有重複值,但是另一張table的資料行是沒有的唯一值

    要建立相關性的時候,依舊出現"無法建立關聯性,因為每個資料行都包含重複的值。請至少選取一個只包含唯一值的資料行。"

    通常會是什麼問題呢? 不好意思跟您請教一下@@

    回覆刪除
    回覆
    1. 兩張作關聯的資料表一定要有一方有唯一的鍵值欄位,兩張都不唯一是不能關聯的喔,可以先試試移除重複的功能確認它唯一,然後關聯欄位沒有設錯試試,如果還是不行,新建另一個Excel再重新載入資料看看囉

      刪除