如何将所有列值添加到 JMP 查询生成器中的自定义过滤器中您好,先生或女士,
我想要做的是使用 SQL 查询从第一个数据库中提取一个数据表,然后我想将表中一列的值放入第二个 JMP 查询生成器中的自定义过滤器中。
我尝试从第一个数据库中提取 WO 数据表的 Col Serial 中的值,如下所示,
Col_Values = 数据表( "WO" ):Serial << 获取值;
然后,尝试将该值放入第二个数据库的 JMP 查询生成器中 Col part_id 的自定义过滤器中。
其中(自定义( “part_id in (Col_Values)”,UI(自定义(Base( “Continuous” )))))
但是,它没有起作用。
如果有什么方法可以做到这一点,我将不胜感激。
提前致谢。
数据访问回复:如何将所有列值添加到 JMP 查询生成器中的自定义过滤器中这将获取数据表中的所有值
col_values=data table("WO")[0,0]回复:如何将所有列值添加到 JMP 查询生成器中的自定义过滤器中不确定您在哪个时候遇到问题,但首先从您的列中获取唯一值列表。
使用关联数组(不适用于浮点数),如果数据量很大的话,速度会很慢(还会对数据进行重新排序)
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
uniq_age = Associative Array(Column(dt, "age")) << get keys;
使用汇总,将数字更改为字符串,这在本例中是件好事
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
Summarize(dt, uniq_age = By(:age));
或者使用汇总平台和数据表下标/获取值。
然后使用连接项将该列表转换为字符串并构建查询字符串。您可能需要评估该值,但我不确定这是否有必要
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
Summarize(dt, uniq_age = By(:age));
uniq_age_in = Concat Items(uniq_age, ", ");
//uniq_age_in = "'" || Concat Items(uniq_age, "', '") || "'"; // note that if you have string, you need to add quotes
custom_sql_template = "part_id in (¤uniq_age_in¤)";
custom_sql = Eval Insert(custom_sql_template, "¤");
// your sql thing
Where(Custom(custom_sql, UI(Custom(Base("Continuous")))));
// or if evaluation is necessary
Eval(EvalExpr(
Where(Custom(Expr(custom_sql), UI(Custom(Base("Continuous")))));
));
回复:如何将所有列值添加到 JMP 查询生成器中的自定义过滤器中嗨,jthi,
非常感谢您的回答。我需要像下面这样稍微修改一下脚本,但总的来说,它完全按照我的要求运行。非常感谢您的帮助。
谢谢,
数据表(“WorkOrder_Serial”)<<新列(“WO_SN”,
特点,
“名义上的”,
公式(“'”||:serial||“'”)
(英文):
//我制作了一个带有引号的新列,因为它运行良好。
汇总(数据表(“WorkOrder_Serial”),SN = By(:WO_SN));
uniq_age_in = 连接项目(SN,“,”);