2017-05-02 36 views
0

私は結果を得るためにQlikViewを使用して2台に参加する必要があります。QlikViewを - 2つのテーブルを結合する

表: enter image description here

私はこの

enter image description here

のように任意のアイデアを結果表を取得するには、この2台に参加する必要がありますか?私はクロステーブルとどのように使用できますか?

答えて

1

Table1のために、あなたは、「回転」テーブルCrossTable機能を使用しますが、最初の列を維持することができます。

CrossTable(Location, Quantity) 
Load 
    Reason, 
    LocA, 
    LocB 
From 
    [Data.xlsx] (ooxml, embedded labels, table is Table1) 
; 

この後の結果テーブルは次のようになります:たとえば

Location Reason Quantity 
LocA  R1  5 
LocA  R2  4 
LocA  R3  5 
LocA  R4  3 
LocB  R1  2 
LocB  R2  2 
LocB  R3  3 
LocB  R4  5 

(あなたはQlikのヘルプサイトでCrossTableについての詳細を学ぶことができます - CrossTableTable1を持った後

この形式でcomposite key(x3jaが提案するように)を作成することができます。 Composite keyは基本的に2つ(またはそれ以上)のフィールドを連結したものです。あなたの場合、テーブル間の結合は、LocationReasonという2つのフィールドになければなりません。

enter image description here

とデータ:AnswerLocationReasonの値であることを

enter image description here

お知らせ

// CrossTable the data to get it in correct format 
Table1_Temp: 
CrossTable(Location, Quantity) 
Load 
    Reason, 
    LocA, 
    LocB 
From 
    [Data.xlsx] (ooxml, embedded labels, table is Table1) 
; 

// Resident load to form the composite key 
// based on Location and Reason fields 
Table1: 
Load 
    Location & '|' & Reason as Key, 
    Quantity 
Resident 
    Table1_Temp 
; 

// We dont need Table1_Temp table anymore 
Drop Table Table1_Temp; 

//Load the second table and create the same composite key 
Table2: 
Load 
    Location & '|' & Reason as Key, 
    Location, 
    Reason, 
    Answer 
From 
    [Data.xlsx] (ooxml, embedded labels, table is Table2) 
; 

リロードした後、あなたのデータモデルは次のようになりますnull下2行に行。これは、(あなたのスクリーンショットに基づく)Table2のデータがあるためLocB and R2LocA and R4のための組み合わせを含むがTable1しないんです。

あなたは両方のテーブルに存在している組み合わせのみを保持したい場合は、その後のアプローチは似ていますが、2つの違いである。

  • Table2が非共通を除外するkeep機能を使用し
  • 最初にロードする必要があります

    - Table1

keep Qlikのヘルプサイトでkeep)にロードされるため、レコード

あなただけの最初のタブをコメントしてごめんなさいexample qvw

+0

ありがとうございました! – dev

0

あなたがこれを行うことができますいくつかの方法があります。関連付けを使用し

  1. 。表1を2回ロードして連結し、複合キーを作成します。だからあなたはReasonLocationとQuantityフィールドで終わるだろう。次に、表2をロードして同じ複合キーを作成し、ReasonLocation、Location、Reason & Answerを与えます。次に、テーブルはその複合キーに関連付けられます。
  2. 結合を使用する。 Table1をロードし、Reasonに基づいて表1に左の結合を、if [Location] = 'LocA' then [LocA] else [LocB]のようなif文で実行します。その場合、最初にtempテーブルにロードし、常駐ロードでifステートメントを実行する必要があります。

2つを組み合わせて#1のテーブルをReasonLocationフィールドに基づいて結合することもできます。助け

希望 - 申し訳ありません、それは完全には通じ働いていないです...

+0

第二の1のコメントを外しアクションでスクリプトを見たい場合は、私はQlikViewの中に新たなんだ、私はunderstendません。あなたは私に同じ事を教えてくれますか? – dev

関連する問題