如何使用 SQL 查询外部数据库和已保存的 JMP 表?你好,
在 JMP 脚本中,我确实需要查询已保存的 JMP 表和单独的数据库表,但无法弄清楚如何或在线找到解决方案。下面有一个简化的示例代码。 问题是一旦我连接到数据库,我就无法再查询本地表。 我知道我可以在外部数据库上执行 SQL 查询后在 JMP 中执行表联接,但目标是仅提取查询中的customers.jmp 表中指定的客户,以减少需要查询的数据量。 我尝试过加入“客户”、加入“客户”等。
任何帮助将不胜感激,谢谢。
// open JMP table
cust = Open( "***\JMP Tables\Customers.jmp");
//connect to DB
SQLConnection = Create database connection("DRIVER=*** SERVER=***; DATABASE=database; Uid=***;Pwd=***");
//Query both
PrePUSQL01 =
"
SELECT
T.CustomerID,
C.Inc
FROM database.dbo.table AS T
JOIN cust AS C ON C.CustomerID = T.CustomerID
WHERE C.Inc = '1'
"
;
dt = Execute SQL(SQLConnection,
PrePUSQL01,
"dt"
);回复:如何通过 SQL 查询外部数据库和已保存的 JMP 表?如果我理解正确的话,您有一个包含客户列表的 JMP 数据表,并且您希望从数据库中提取与这些客户匹配的行。
您可以使用匹配列值查询生成器中的过滤器。

有一个文档中的示例了解如何使用匹配列过滤器。
回复:如何通过 SQL 查询外部数据库和已保存的 JMP 表?Chris 是对的 - 您需要创建一个 IN 列表并将其包含在您的 SQL 中。这段对话可能会有帮助。
回复:如何通过 SQL 查询外部数据库和已保存的 JMP 表?你好,
我认为您可能需要做的是使用 GetValues 从 JMP 表中读取 CustomerID 值(如下面第一行所示),然后将该列表插入到 SQL 代码中(对 WHERE 子句使用 IN 运算符)。
custIDList = :CustID << GetValues;
这不是完整的代码,而是朝着正确方向的一点推动。
您必须使用一点 JSL 将列表插入到 SQL 代码中,但至少这会为您提供来自在 Customer.JMP 文件中具有 ID 的客户的信息。 然后,您可以使用 JMP 中的 Join 将两个集合合并在一起。
希望有帮助,
克里斯