SQLデータプル用の一意の列値の文字列を作成するJSLを使ってSQLからデータを取得しています。Where文でShopOrderIDを手動で定義しています。異なるJMPテーブルから一意の値をすべて含む文字列(リスト)を作成し、それを変数としてSQLテーブルからデータを取得するにはどうすればよいでしょうか?
集計機能を試しましたが、機能しませんでした。

基本的なデータ分析とモデリングRe: SQL データ プル用の一意の列値の文字列を作成する集計を使用して項目のリストを作成し、項目を連結して SQL が理解できる文字列に構築します。
例えばINを使用できる場合
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
Summarize(dt, uniq = By(:age));
sql_in = "('" || Concat Items(uniq, "', '") || "')"; // "('12', '13', '14', '15', '16', '17')"
Re: SQL データ プル用の一意の列値の文字列を作成するこんにちは@ConfidenceOwl94
ヘルプ ドキュメントの「SQL クエリの作成」の「 既存のデータ テーブルから一致するデータをインポートする」を参照してください。
[フィルター] 列の赤い三角形から [フィルター タイプ] を選択し、[列の値の一致] を選択します。
乾杯、
スタン
Re: SQL データ プル用の一意の列値の文字列を作成するありがとう、ジャルモ。
何が間違っているのでしょうか?

Re: SQL データ プル用の一意の列値の文字列を作成する文字列内で評価する必要がある
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
Summarize(dt, uniq = By(:age));
sql_in = "('" || Concat Items(uniq, "', '") || "')"; // "('12', '13', '14', '15', '16', '17')"
sql_template = "\[
SELECT *
FROM *
WHERE
col IN ¤sql_in¤
]\";
sql_str = Eval Insert(sql_template, "¤");
show(sql_str);
一部の正規表現パターンではデフォルトの「^」が時々表示されることがあるため、代わりに「¤」を使用します。
Re: SQL データ プル用の一意の列値の文字列を作成するありがとう、ジャルモ。
ご提案いただいたスクリプトを使用しました。sql_inに注文番号を保存していますが、SQLクエリでデータが取得されません。
WHERE (a.ShopOrderId = '12345')を使用してデータを取得すると、SQL が正常に動作することを確認しました。
何を間違えているのでしょうか。
前もって感謝します
Re: SQL データ プル用の一意の列値の文字列を作成するどういうわけか、最後のメッセージにスクリプトが添付されていませんでした。
Names Default To Here(1);
dt = current data table();
Summarize(dt, uniq = By(:OrderNumber));
sql_in = "('" || Concat Items(uniq, "', '") || "')";//"('1','2','3','4','5')"
/********************Connection Strings*******************************/
TestDataConnString = "DRIVER=AAA; SERVER=AAA; UID=AAA; PWD=AAA; DATABASE=AAA";
Data="\[SELECT
a.[ShopOrderId] ,[BuildSerialNumber] ,[DateCode] ,a.[ItemNumber], t4.ItemNumber AS PartNumber
,string_agg(a.[LotNumber],', ') AS Lots
FROM [Employee].[dbo].[vw_LotQuery] a
JOIN Employee.dbo.MFGTravelerShopOrders t2 with (NOLOCK) ON t2.ShopOrderID=a.ShopOrderId
JOIN Employee.dbo.MFG_ItemMasters t4 with (NOLOCK) ON t4.ItemNumber=t2.ItemNumber
WHERE
col IN ¤sql_in¤
AND
(a.[ItemNumber] LIKE '%PM%' OR a.[ItemNumber] LIKE '%PW%')
Group by a.[ShopOrderId] ,[BuildSerialNumber] ,[DateCode] ,a.[ItemNumber], t4.ItemNumber
Order by [BuildSerialNumber]
]\";
sql_str = Eval Insert(Data, "¤");
show(sql_str);
Re: SQL データ プル用の一意の列値の文字列を作成するクエリを取得したら、クエリを実行する必要があります。Open Database() ではなく New SQL Query() を使用することをお勧めします。これは最新のメソッドであり、現在開発が進められている唯一のメソッドです(もっともユーザーフレンドリーではありませんが)。