你好@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。
- 更具体地说,它会将“值”列从第二个文件复制到第一个文件并创建 Data_Blending JMP 表。
仅当在查询中输入文件名时,上述脚本才有效。
如果我想在不同的文件上运行相同的脚本而不更改参考表名称怎么办?
假设我的第二个文件名保持不变,我想对不同的文件执行类似的操作。
我有另一个 Excel 文件“3rd_file”,但我不想在查询中更改其名称。有什么语法可以复制下图中红圈部分中的文件名吗?

任何帮助/指导都将不胜感激。
你好@Jackie_ ,
对于其他跟随者来说,使用 JMP 编写 JSL 的最佳老师之一是首先以交互方式执行步骤,然后让 JMP 编写脚本。
我建议您观看我们在线系列“掌握 JMP”中使用 JMP 查询生成器的一些教学视频。
我们的探索峰会系列中有关使用 JMP 查询生成器进行数据整理的附加教程。
要扩展其他表之间的连接,一般过程与前面所示的两个表相同。
干杯,
斯坦