為 SQL 資料提取建立唯一列值的字串我正在使用 JSL 從 SQL 中提取資料。在 Where 語句中,我手動定義了 ShopOrderID。如何將不同 JMP 表中所有唯一值組合成一個字串(列表),並將其用作變數從 SQL 表中提取資料?
我嘗試了總結功能,但沒有用。

基礎資料分析與建模回覆:為 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')"
回覆:為 SQL 資料提取建立唯一列值的字串你好@ConfidenceOwl94
請參閱說明文件中的「建置 SQL 查詢」下的「 從現有資料表匯入符合資料」。
從“過濾器”列中的紅色三角形中,選擇“過濾器類型”,然後選擇“匹配列值”。
乾杯,
史丹
回覆:為 SQL 資料提取建立唯一列值的字串謝謝 Jarmo,
我做錯了什麼?

回覆:為 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);
我使用“¤”而不是依賴預設的“^”,因為它可能會不時出現在某些正規表示式模式中。
回覆:為 SQL 資料提取建立唯一列值的字串謝謝 Jarmo,
我使用了你建議的腳本。它將訂單號碼儲存在 sql_in 中。但是 SQL 查詢沒有提取任何資料。
我確認當我使用WHERE (a.ShopOrderId = '12345')提取資料時 SQL 運作良好。
我做錯了什麼。
先致謝
回覆:為 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);
回覆:為 SQL 資料提取建立唯一列值的字串獲得查詢後,您必須執行該查詢。我建議使用 New SQL Query() 而不是 Open Database(),因為它是最新的方法,也是唯一正在進一步開發的方法(儘管它最不方便使用者使用)。