私があなたが見たいものを正確に理解しているかどうかわからないが、ここに私が上に示したように質問から生成されたJSLがある。
Where()部分に注目してください。純粋なJSLです。カスタムSQLに固執できる変数はありません。
あなたの努力の選択は次のように見えます。
- JSLを作成してプロンプトを作成し、応答をSQLに挿入する方法を考え出す。または、
- クエリーをクエリービルダーに変換して、プロンプトを表示させます。
どちらがあなたにとってより手間がかかるかはわかりませんが、Query Builderへの変換はより柔軟に思え、長期的にはより多くのオプションを提供するでしょう。
New SQL Query(
Version( 130 ),
Connection(
connection_string
),
QueryName( "inventory" ),
Select(
Column( "warehouseid", "t1" ),
Column( "sku", "t1" ),
Column( "sku_description", "t1" ),
Column( "quantityonhand", "t1" ),
Column( "quantityonorder", "t1" )
),
From(
Table( "inventory", Schema( "Sporting Goods By Stan" ), Alias( "t1" ) ),
Table(
"warehouse",
Schema( "Sporting Goods By Stan" ),
Alias( "t9" ),
Join(
Type( Left Outer ),
EQ( Column( "warehouseid", "t9" ), Column( "warehouseid", "t1" ) )
)
),
Table(
"order_item",
Schema( "Sporting Goods By Stan" ),
Alias( "t6" ),
Join(
Type( Left Outer ),
EQ( Column( "sku", "t6" ), Column( "sku", "t1" ) )
)
),
Table(
"sku_data",
Schema( "Sporting Goods By Stan" ),
Alias( "t8" ),
Join(
Type( Left Outer ),
EQ( Column( "sku", "t8" ), Column( "sku", "t1" ) )
)
),
Table(
"retail_order",
Schema( "Sporting Goods By Stan" ),
Alias( "t7" ),
Join(
Type( Left Outer ),
EQ( Column( "ordernumber", "t7" ), Column( "ordernumber", "t6" ) )
)
)
),
Where(
In List(
Column( "department", "t8" ),
{"Water Sports"},
UI(
SelectListFilter(
ListBox,
Base(
"Categorical",
Prompt(
"Select a department:",
Character,
PromptName( "t8.department_1" ),
ValueSource(
Column(
"department",
Alias( "department" ),
Table(
"sku_data",
Schema( "Sporting Goods By Stan" )
)
)
)
)
)
)
)
)
)
) << Run;
はい。JMPで直接クエリを作成すると、プロンプトが表示されます。私が抱えている問題は、既存のクエリを使用してカスタムSQLクエリを実行したときに、プロンプトが表示されないことです。単純なクエリーでは、JMPのクエリービルダーが機能しますが、再構築する必要がないようにするために、かなり長くて複雑な結合がいくつかあります。
クエリビルダーを使用する場合は、フィルタ領域の[実行時にプロンプトを表示]オプションを使用して自動的にプロンプトを作成します。

クエリを実行すると、ユーザーにプロンプトが表示されます。自分で作る理由はありません。

こんにちは @ジョイストリンガー 、
これは、クエリを開始する前に実行できるものの例です。
dlg = New Window("Parameter Specification", << Modal,
V List Box(
Text Box("Please specify the value of lineID."),
H List Box(
Text Box("LineID: "),
neb = Number Edit Box();
),
Button Box("OK", LineID = neb << Get);
)
);
Show(LineID);このウィンドウは単に番号編集ボックスに番号を入力するようにユーザーに要求します。 [OK]ボタンをクリックするとボックス内の値が取得され、クエリで使用できる[lineID]として保存されます。 "<< Modal"オプションはウィンドウをモーダルにします。つまり、ユーザーが "OK"を押すまで、JMPはウィンドウの後にある残りのスクリプトを実行しません。
もっと複雑なことをしたいのであれば、スクリプトを書く方法を学ぶためにスクリプトガイド(Help> Books> Scripting Guide)をチェックすることを強くお勧めします。