Crea una stringa di valori di colonna univoci per l'estrazione dei dati SQLSto usando JSL per estrarre dati da SQL. In un'istruzione Where sto definendo manualmente ShopOrderID. Come posso creare una stringa (elenco) con tutti i valori univoci provenienti da diverse tabelle JMP e usarla come variabile per estrarre dati da una tabella SQL?
Ho provato la funzione di riepilogo ma non ha funzionato.

Analisi e modellazione dei dati di baseRe: Creare una stringa di valori di colonna univoci per l'estrazione dei dati SQLUtilizzare summary per creare un elenco di elementi e quindi concat items per trasformarlo in una stringa comprensibile da SQL.
Ad esempio, se puoi usare 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: Creare una stringa di valori di colonna univoci per l'estrazione dei dati SQLCiao @ConfidenceOwl94
Vedere " Importazione di dati corrispondenti da una tabella dati esistente " nella documentazione della guida in Creazione di una query SQL.
Dal triangolo rosso nella colonna Filtri, seleziona Tipo di filtro, quindi seleziona Corrispondenza valori colonna.
saluti,
Stan
Re: Creare una stringa di valori di colonna univoci per il pull dei dati SQLGrazie Jarmo,
Cosa sto sbagliando?

Re: Creare una stringa di valori di colonna univoci per l'estrazione dei dati SQLDevi valutarlo all'interno della tua stringa
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);
Utilizzo "¤" invece di affidarmi al carattere predefinito "^" come potrebbe apparire di tanto in tanto in alcuni modelli di espressioni regolari.
Re: Creare una stringa di valori di colonna univoci per l'estrazione dei dati SQLGrazie Jarmo,
Ho usato lo script che hai suggerito. Memorizza il numero d'ordine in sql_in. Ma la query SQL non estrae alcun dato.
Ho confermato che SQL funziona correttamente quando utilizzo WHERE (a.ShopOrderId = '12345') per estrarre i dati.
Cosa sto sbagliando?
grazie in anticipo
Re: Creare una stringa di valori di colonna univoci per l'estrazione dei dati SQLIn qualche modo lo script non era allegato al mio ultimo messaggio.
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: Creare una stringa di valori di colonna univoci per l'estrazione dei dati SQLDopo aver ottenuto la query, è necessario eseguirla. Suggerirei di usare New SQL Query() invece di Open Database(), poiché è il metodo più recente e l'unico in fase di sviluppo (anche se è il meno intuitivo).