Qlikview-circular-reference
提供:Dev Guides
QlikView-循環参照
- 循環参照*は、2つ以上の異なるパスを使用して、あるテーブルから別のテーブルに移動できる場合に発生します。 これは、列を使用してTable1をTable2に直接結合できること、または最初にTable1をTable3に結合してからtable3をTable2に結合することもできることを意味します。 これにより、これら3つのテーブルすべてをロードするデータモデルによって形成される出力に誤った結果が生じる可能性があります。 QlikViewは、循環参照を認識すると、そのようなデータがメモリにロードされるのを防ぎます。
入力データ
次の3つのCSVデータファイルを考えてみましょう。これらのファイルは、詳細な説明の入力として使用されます。
スクリプトをロード
データロード
上記のスクリプトを作成した後、コマンド Control + R を使用してQlikViewのメモリにデータをロードします。 これは、ロードされるテーブルに循環ループが存在することを示すエラープロンプトが表示されるときです。
データ・モデル
上記の警告の正確な原因を見つけるために、テーブルビューアーのメニューコマンド Control + T を使用してデータモデルを確認できます。 次の画面が表示され、循環参照が明確に表示されます。 ここで、RegionCountryとSalesRegionの間の結合は、フィールド Region を使用して直接実現できます。 フィールド Country を使用して最初にProductCountryテーブルに移動し、次にProdcutIDをSalesregionにマッピングすることでも実現できます。
循環参照の解決
上記の循環参照は、QlikViewが列名を使用してテーブル間の関連付けを自動的に形成しないように、データセットの列の名前を変更することで解決できます。 このため、RegionCountryのcountry列の名前をSalesCountryに変更します。 データセットProdcuCountryで、Country列の名前をProductCountryに変更します。
修正されたデータモデル
上記の列の名前を変更した後の修正済みデータモデルは、コマンド Control + T を使用して表示できます。 これで、テーブル間の関係がループを形成していないことがわかります。