안녕하세요 @stan_koprowski 님 ,
JMP Query Builder를 사용하여 다음 SQL 쿼리를 생성했습니다.
Names Default To Here( 1 );
//Prompt to select and open an MS Excel file
dt1 = Open( Pick File( "Select Excel File", "$DOCUMENTS", {"Excel Files|csv;xlsx;xls", "All Files|*"}, 1, 0 ), Invisible );
//Prompt to select an open a JMP data table
dt2 = Open( Pick File( "Select JMP File", "$DOCUMENTS", {"JMP Files|jmp", "All Files|*"}, 1, 0 ), Invisible );
//Perform a left outer join on the tables using the "Name" Column
New SQL Query(
Version( 130 ),
Connection( "JMP" ),
JMP Tables(
["1st_file" =>
"Source(Open( \!"dt1\!",
Worksheets( \!"worksheet\!" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 1 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( \!"-\!" )
)
))",
"2nd_file" => "Source(Open( \!"dt2\!"))"]
),
QueryName( "Data_Blending" ),
Select(
Column( "Name", "t2" ),
Column( "Enable", "t2" ),
Column( "Type", "t2" ),
Column( "Phase", "t2" ),
Column( "Values", "t3" )
),
From(
Table( "2nd_file", Alias( "t2" ) ),
Table(
"1st_file",
Alias( "t3" ),
Join(
Type( Left Outer ),
EQ( Column( "Name", "t2" ), Column( "Name", "t3" ) )
)
)
)
) << Run;
//Close source files without saving
Close(dt1, "NoSave");
Close(dt2, "NoSave")
- 위 스크립트는 Left Join을 수행합니다.
- 구체적으로 말하면, 2번째 파일의 "값" 열을 1번째 파일에 복사하고 Data_Blending JMP 테이블을 생성합니다.
위 스크립트는 파일 이름이 쿼리에 입력된 경우에만 작동합니다.
참조 테이블 이름을 변경하지 않고 다른 파일에 대해 동일한 스크립트를 실행하려면 어떻게 해야 합니까?
두 번째 파일 이름은 일정하게 유지하고 다른 파일에 대해 비슷한 작업을 수행하고 싶습니다.
"3rd_file"이라는 또 다른 엑셀 파일이 있는데, 쿼리에서 파일 이름을 변경하고 싶지 않습니다. 아래 이미지의 빨간색 원 안에 있는 파일 이름을 복사할 수 있는 구문이 있을까요?

도움/지침을 주시면 감사하겠습니다.