你好!我正在尝试将8个表组合在一起,并且如果原始表(是excel或JMP数据表)会自动更新。
- 8个表具有相同的列名和属性,但它们具有不同的数据集,所以我在技术上想做的是将所有这些表连接在一起。
- 我还需要连接的表(供8馈入的表),以便在添加/删除馈送器表中的数据时进行更新等。
我知道有一个“联接”可以创建一个数据库,该数据库实际上会随着输入数据表的更改而更新,但是该函数不能满足我的需要,因为它只是替换了数据(JMP上的“联接”函数);它不会串联。
是否具有虚拟连接8个数据表(最好是excel)的功能,以便如果更改了供料器数据表,则连接的数据表(将所有8个原始数据表组合在一起的数据表)将更新?
先感谢您!
@AU ,
我不知道可以使用JMP内置选项来执行所需的操作,但是SQL主服务器可能具有执行所需的方法。 我不确定您的期望/用例是什么。
您希望在分析数据时进行更新吗? 您是否有要更新的分析? 还是希望该文件/分析在一定的时间间隔内更新?
如果您提供了关于期望(尝试做)的更详细描述,那么社区可能能够为您提供解决方案,即使它不是JMP内置解决方案。
谢谢@ gzmorgan0对于建议,我添加了更多详细信息。
啊,好的,谢谢:(有点不幸。我对SQL不熟悉,但是如果它简单/直接,我愿意学习/尝试。
我也不知道有一个类似于虚拟联接的工具,但是听起来您可以使用传统串联的一个不太复杂的脚本来完成此任务。这是我将开始的一般方法:
Names Default to here(1);
//reference the current data table (the one you are already working in)
dtLatest = current data table();
//list of all source files and variable to hold references to source tables
SourceFile = {"C:\file1.xlsx", "C:\file2.xlsx", ... };
dtSource = list();
//If all files have the same format, use a function to open them all
openfile = Function({fn},
//Open function, copy this from the source script after opening a file interactively
dt = Open(
fn,
Worksheets( "Sheet 1" ),
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( "-" )
)
);
dt << New Column(..); //add any more columns, filter or clean data as appropriate
dt;
);
//Open source tables
for( f=1, f<= n items(SourceFile), f++,
dtSource = openfile( SourceFile[f] )
);
//Join all the files together
dtJoined = Concatenate(dtSource);
//Close the source tables
dtSource << Close Window()
//In the source table, delete all rows
dtLatest << Select all Rows;
dtLatest << Delete Rows;
//Concatenate the new rows again
dtLatest << Concatenate( dtJoined );