SQL 데이터 풀을 위한 고유한 열 값 문자열 생성JSL을 사용하여 SQL에서 데이터를 가져오고 있습니다. Where 문에서 ShopOrderID를 직접 정의하고 있습니다. 여러 JMP 테이블에서 고유한 값으로 구성된 문자열(List)을 만들고 이를 변수로 사용하여 SQL 테이블에서 데이터를 가져오려면 어떻게 해야 할까요?
요약 기능을 시도했지만 작동하지 않았습니다.

기본 데이터 분석 및 모델링Re: SQL 데이터 풀을 위한 고유한 열 값 문자열 생성summarize를 사용하여 항목 목록을 만든 다음 항목을 concat하여 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 데이터 풀을 위한 고유한 열 값 문자열 생성고맙습니다, Jarmo,
내가 무엇을 잘못하고 있는 걸까요?

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 데이터 풀을 위한 고유한 열 값 문자열 생성고맙습니다, Jarmo,
제안해 주신 스크립트를 사용했습니다. 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()를 사용하는 것이 좋습니다. Open Database()는 최신 메서드이자 유일하게 개발 중인 메서드이기 때문입니다(비록 사용자에게 가장 불편하더라도요).