여보세요,
데이터베이스에 연결하고 수동으로 생성 된 긴 SQL 쿼리를 실행하여 정기적으로 JMP 파일을 업데이트해야합니다. 지금까지 " 같이 "명령을 사용하여 데이터베이스의 필드 이름을 JMP의 단순화 된 열 이름과 일치시킵니다. 데이터를 임시 JMP 테이블로 가져온 후 스크립트는 동일한 짧은 열 이름을 사용하여 작업중인 JMP 파일과 조인하여 업데이트를 완료했습니다.
질문 1 : JMP의 최신 SQL 쿼리 빌더를 사용해 보았습니다 (버전 11부터 사용 가능합니다). 그러나 새 생성자의 관심을 상당히 감소시키는 쿼리를 수동으로 편집하는 것 외에 "AS"명령을 관리하는 버튼을 찾을 수 없습니다. 더 효율적인 방법이 있습니까?
질문 2 : 내 요구에 더 적합한 방법이 있습니까? 필드를있는 그대로 (이름을 변경하지 않고) 임시 테이블로 가져온 경우 JMP 테이블의 데이터를 효율적으로 업데이트 할 수있는 방법이 있습니까? 예를 들어 내 스크립트에서 일종의 이름 매핑 테이블을 사용합니까?
NB : 항목이 항상 동일한 순서가 아니기 때문에 업데이트 된 데이터를 JMP 파일로 직접 가져 오지 않기로 선택했으며 파생 데이터에 대한 새 열을 정기적으로 생성합니다. 그렇지 않으면 업데이트 할 때 오프셋이 생성됩니다.
관심을 가져 주셔서 감사합니다
클로드 B.
한 가지 옵션은 쿼리 결과에서 이름을 변경하지 않고 그대로 둔 다음 이전 이름과 새 이름이있는 저장된 데이터 테이블을 사용하여 업데이트하는 것입니다.
Names default to here(1);
//Open a saved jmp file with the old and new names (creating the table here instead of opening it...)
dtNames = New Table( "Names",
Add Rows( 4 ),
New Column( "old", Character, "Nominal",
Set Values( {"Sepal length", "Sepal width", "Petal length", "Petal width"} )
),
New Column( "new", Character, "Nominal",
Set Values( {"sl", "sw", "pl", "pw"} )
)
);
//Run database query using 'default' column names
dtQuery = Open("$Sample_data/iris.jmp");
//Update names in the query results
for each row( dtNames,
Column( dtQuery, :old ) << Set Name( :new )
);