Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
お世話になります。
タイトルの件ですがQlikViewでのデータ取り込みについてお教えください。
下図のような構成テーブルを挟むDBの取り込みを考えています。
<<テーブルの構成>>
1.伝票⇒月ごとの製品の売れた数
2.構成⇒1製品に対する複数部品の構成を示すテーブル
3.単価⇒月ごとの部品の単価
※製品を特定すると、それを構成する部品が絞り込まれ製品の単価が出てくるというものです。
これらを取り込むと、循環するため疎結合となってしまいます。
今後の管理上(メンテナンス含め)のことも考え、疎結合がある状態は避けたいと考えています。
時間をかけて考えてみたのですが、答えが出ず。
この問題の回避策をご存知の方、恐れ入りますがぜひお知恵をお貸しください。
よろしくお願いいたします。
単価Sテーブルに構成Sの「製品」列をつけてやればいいと思います。
伝票S:
LOAD * INLINE [
製品, 月, 数量
1, 1, 1
];
//構成S:
//LOAD * INLINE [
// 製品, 部品
// 1, a
//];
単価S:
LOAD * INLINE [
部品, 月, 単価
1, 1, 1
];
Left Join LOAD * INLINE [
製品, 部品
1, a
];
単価Sテーブルに構成Sの「製品」列をつけてやればいいと思います。
伝票S:
LOAD * INLINE [
製品, 月, 数量
1, 1, 1
];
//構成S:
//LOAD * INLINE [
// 製品, 部品
// 1, a
//];
単価S:
LOAD * INLINE [
部品, 月, 単価
1, 1, 1
];
Left Join LOAD * INLINE [
製品, 部品
1, a
];
単価Sテーブルに構成Sの「製品」列をつけてやればいいと思います。
伝票S:
LOAD * INLINE [
製品, 月, 数量
1, 1, 1
];
//構成S:
//LOAD * INLINE [
// 製品, 部品
// 1, a
//];
単価S:
LOAD * INLINE [
部品, 月, 単価
1, 1, 1
];
Left Join LOAD * INLINE [
製品, 部品
1, a
];
補足です。
Furukawaさんの方法でもちろん正解ですが、合成キーをなくすためにも全部結合させてもいいかもしれません。
そうすると単価と数量が同じテーブル内に収まるので、データ量が増えたときに合成キーがある時より
パフォーマンスが良くなります。
Jun Furukawaさま
ご回答いただきありがとうございました。
構成テーブルと、単価のテーブルをまとめる方法をとるようにいたしました。
元のテーブル構成を意識しすぎており、なかなか結合するという方法に踏み出せませんでした。
詳細な例示も頂き助かりました。
また、よろしくお願いします。
hka さま
補足ありがとうございました。
現状少量データのためひとまず2テーブルで構成するようにしました。
(データ量が増えると1テーブルにまとめざるを得ないと考えています。)
1つのテーブルにまとめると、テーブルビューアで見たときなど
一見して何のテーブルかわからないということもあり、もとのデータソースの構成を
払拭できずにいました。
この機会に、QV上で扱うデータの最適化についても慣れておこうと思います。
またよろしくお願いします。