2017-05-02 2 views
0

결과를 얻으려면 Qlikview에서 두 테이블을 조인해야합니다.Qlikview - 두 테이블에 합류

표 :이

enter image description here

어떤 생각과 같은 결과 테이블을 얻기 위해이 두 테이블에 가입해야 enter image description here

? 크로스 테이블을 어떻게 사용할 수 있습니까?

답변

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 

(당신은 클릭 테크의 도움말 사이트에서 CrossTable에 대해 자세히 알아볼 수 있습니다 - CrossTable) Table1을 가진 후

이 형식으로 composite key (x3ja 권장)을 만들 수 있습니다. Composite key은 기본적으로 연결된 두 개 이상의 필드입니다. 귀하의 경우 테이블 간의 조인은 LocationReason의 두 필드에 있어야합니다.

enter image description here

그리고 데이터 : Answer, Location, Reason의 값이라는 것을

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) 
; 

다시로드 한 후 데이터 모델처럼 보일 것이다 하단 2 개에 null 행. 화면의 Table2에있는 데이터에 LocB and R2LocA and R4은 있지만 Table1의 데이터는 포함되어 있지 않기 때문입니다.당신이 두 테이블에 존재하는 유일한 조합을 유지하려면

그 접근 방식은 비슷하지만 두 개의 차이 :

  • Table2 비 일반을 제외 할 첫번째
  • 사용을 keep 기능을로드해야

    -에 대한 기록 (keep 클릭 테크의 도움말 사이트에서 keep) Table1

에로드되는

스크립트가 작동 중인지 확인하려면 첫 번째 탭에 주석을 달고 example qvw

+0

고마워요 !!! – dev

0

이렇게 할 수있는 방법이 몇 가지 있습니다.

  1. 연결을 사용 중입니다. 표 1을 두 번로드하고 결합하여 복합 키를 만듭니다. 그래서 당신은 ReasonLocation과 Quantities 필드로 끝날 것입니다. 그런 다음 표 2를로드하여 ReasonLocation, Location, Reason을 제공하는 동일한 복합 키를 만듭니다. & Answer. 그런 다음 테이블은 해당 복합 키와 연관됩니다.
  2. 조인 사용. Table1을로드하고 이유문에 따라 표 1에 왼쪽 조인을 수행합니다 (if [Location] = 'LocA' then [LocA] else [LocB]과 같은 if 문 사용). 임시 테이블에 먼저로드하고 상주로드에서 if 문을 수행해야 할 수도 있습니다.

두 개를 결합하고 # 1의 테이블을 ReasonLocation 필드를 기반으로 조인 할 수도 있습니다. 도움이

희망 - 미안 완전히 통해 일 아니에요 ...

+0

에 대한 주석을 제거하십시오. 죄송합니다. 저는 QLikview를 처음 사용하며 이해가되지 않습니다. 나 한테 똑같은 표정을 줄 수있어? – dev