你好,
我必须通过连接到数据库并运行长时间手动创建的SQL查询来定期更新JMP文件。 到目前为止,我使用了“如”命令,将数据库中的字段名称与JMP中列的简化名称进行匹配。 将数据导入临时JMP表后,我的脚本通过使用相同的短列名与工作的JMP文件进行联接来完成更新。
问题1:我尝试使用JMP的最新SQL查询生成器(我相信自版本11起可用)。 但是除了手动编辑查询之外,我找不到用于管理“ AS”命令的按钮,这大大降低了对新构造函数的兴趣。 有没有更有效的方法?
问题2:是否有更适合我需要的方法? 如果我将字段原样(不更改名称)导入临时表,是否有一种有效的方法来更新JMP表中的数据? 例如,在我的脚本中使用某种名称映射表?
注意:我选择不将更新的数据直接导入到我的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 )
);