2016-12-08 3 views
1

Insert and Update 증분로드 버전에 스크립트를 쓰려고 할 때 문제가 발생했습니다.QlikView : 조건 (타임 스탬프없이)을 기준으로 삽입 및 업데이트

예 : 예를 간단하게하기 위해 데이터 세트를 업데이트하는 방법을 보여줍니다. 당신은 내가 모두가 새 레코드를 삽입하고 레코드를 업데이트 할 것을 볼 수 있습니다, 위의 예에서Illustration of the Insert and Update

:

그림을 (나는 토론의 코드를 떠나). 새로운 값이 기존 레코드보다 큰 경우에만 레코드를 업데이트하려고합니다.

예를 들어 ID 2의 기존 레코드는 0 (표 1)이고 ID 2의 새 레코드는 100 (표 2)이므로 ID 2의 최종 업데이트 레코드가 동일하도록 해당 레코드를 업데이트하려고합니다 그들 중 가장 높은 값으로 두 개 (업데이트 된 테이블). 표 2에 새 레코드가 포함되어 있으면 해당 레코드를 최종 데이터 세트에 추가하기 만하면됩니다.

설명 : 값은 기존의 기록보다 높은

  1. 삽입 새 레코드
  2. 업데이트 기록하는 경우

무엇 너희들이 생각하는 이런 종류의 최적의 솔루션입니다 문제?

답변

1

확실하지가 최선의 해결책

//QVD 
Table: 
LOAD * INLINE [ 
ID, Value, Source 
1, 500, 'QVD' 
2, 0, 'QVD' 
3, 100, 'QVD' 
4, 300, 'QVD' 
5, 0, 'QVD' 
]; 

//ODBC 
Concatenate(Table) 
LOAD * INLINE [ 
ID, Value, Source 
2, 100, ODBC 
3, 700, ODBC 
4, 300, ODBC 
6, 500, ODBC 
7, 0, ODBC 
]; 

NewTable: 
LOAD 
    ID, 
    max(Value) as Value 
Resident Table 
Group by ID 
; 

drop Table Table; 
에게있어