美好的一天,
我目前有一个通过Open Database()命令执行的SQL代码块。这个SQL块是由另一个人生成的,我正在尝试简化用户界面。目前,在SQL块中手动输入订单号,每次需要新订单号时都必须覆盖订单号。我已经构建了一个JMP GUI,用于提取用户指定的订单号。
我想将此用户指定的订单号传递给SQL代码。
手动输入当前订单号的SQL段(25891769)
where
ShopFloorControl.ManufacturingOrder.OrderNumber in (25891769)
and ShopFloorControl.ManufacturingOrder.LineNumber = 0
任何帮助将不胜感激。
谢谢
您可以使用字符串连接来替换SQL语句中的变量。 这是一种方法:
order_no = "25891769";
sql_statement = evalinsert(
"SELECT ...
FROM ...
WHERE
ShopFloorControl.ManufacturingOrder.OrderNumber in ('^order_no^')
and ShopFloorControl.ManufacturingOrder.LineNumber = 0");
print(sql_statement);
Results in:
"SELECT ...
FROM ...
WHERE
ShopFloorControl.ManufacturingOrder.OrderNumber in ('25891769')
and ShopFloorControl.ManufacturingOrder.LineNumber = 0"
如果您有多个订单号,可以使用CONCAT ITEMS创建IN列表:
order_list = {"25891769", "25891770", "25891771"};
order_inlist = "('" || Concat Items(order_list, "', '") || "')";
sql_statement = evalinsert(
"SELECT ...
FROM ...
WHERE
ShopFloorControl.ManufacturingOrder.OrderNumber in ^order_inlist^
and ShopFloorControl.ManufacturingOrder.LineNumber = 0");
print(sql_statement);
Results in:
"SELECT ...
FROM ...
WHERE
ShopFloorControl.ManufacturingOrder.OrderNumber in ('25891769', '25891770', '25891771')
and ShopFloorControl.ManufacturingOrder.LineNumber = 0"