Select/Where 문은 목록에서 가져옵니다.안녕!
제목이 이 문제를 가장 잘 설명하는지 잘 모르겠지만, 이제 막 이 문제를 알아낼 때가 온 것 같습니다.
TestID 열이 있는 JMP 테이블이 하나 있고, 변수 TestID 목록을 기준으로 다른 데이터 테이블에서 행을 선택하려고 합니다.
dt = Open("Lot List2.jmp");
ID_list = Column( dt, "TestID" ) << Get values;
dt1= Open Database("Connection",
"SELECT
[TestID]
,[Device]
,[FailureMode]
FROM [Database]
where TestID IN 'ID_list'
order by [TestID] Desc","Device Summary");<BR /><BR />/* ALSO TRIED*/<BR /><BR /><BR />dt = Open("Lot List2.jmp");
ID_list = Column( dt, "TestID" ) << Get values;
dt1= Open Database("Connection",
"SELECT
[TestID]
,[Device]
,[FailureMode]
FROM [Database] m
where m.TestID like 'ID_list'
order by [TestID] Desc","Device Summary");<BR />문제는 'where' 문 어딘가에 있는데, 이 문에서 ID 문자열을 어떻게 호출해야 할지 잘 모르겠습니다. IN 문 옵션은 새 테이블을 열지 않고, like 옵션은 빈 테이블을 엽니다. 제 생각에는 ID_list를 다른 테이블에서 찾을 변수로 취급하는 것 같습니다.
비슷한 질문을 찾았는데, IN 문도 저에게는 효과가 없네요: https://community.jmp.com/t5/Discussions/how-to-extract-data-with-criteria-of-JMP-table-values/td-p/9434
어떤 통찰력이라도 감사히 받겠습니다!
소비자 및 시장 조사대량 맞춤화Re: Select/Where 문이 목록에서 가져옵니다.ID_list는 문자열(또는 숫자) 목록을 반환하며 SQL 쿼리가 이해할 수 있는 문자열로 변환한 다음 해당 문자열을 쿼리에 추가해야 합니다. 아래는 Concat Items 및 Eval Insert를 사용한 쿼리 작성의 한 예입니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
ID_list = Column(dt, "name") << Get values; // list of strings?
sql_template = "SELECT [TestID], [Device], [FailureMode]
FROM [Database]
where TestID IN ('¤idlist_sql¤')
order by [TestID] Desc";
idlist_sql = Concat Items(ID_list, "','");
sql_str = Eval Insert(sql_template, "¤");
dt1 = Open Database("Connection",
sql_str
"Device Summary"
);
이 프레젠테이션은 몇 가지 추가 아이디어를 제공할 수 있습니다. JMP와 Oracle: 행복한 결혼 생활을 위한 팁과 요령(2022-US-30MP-1093)
Re: Select/Where 문이 목록에서 가져옵니다.오 알겠습니다. 수정해야 할 사항이 보입니다. 이 템플릿을 사용했지만 여전히 다른 데이터 테이블이 나타나는 것을 알 수 있습니다. 이 기호는 무엇입니까, ¤ ?
Re: Select/Where 문이 목록에서 가져옵니다.평가 삽입의 기본 문자는 "^"입니다.다른 것을 공급할 수 있는지 몰랐습니다.Jarmo가 사용하는 것 같습니다. ¤ 그것에 대해.
디버깅하려면:
- print 또는 show를 사용하여 SQL 문을 표시합니다.
- 데이터베이스에서 직접 실행할 수 있는 프로그램에 복사/붙여넣기하십시오.예를 들어 Oracle의 경우 PL/SQL Developer, TOAD 또는 SQL Developer를 사용합니다.
작업이 완료되면 JMP에서 실행합니다.
다음은 몇 가지 샘플 코드입니다.
// List of numeric IDs
id_list = {111, 222, 333, 444, 555};
// Convert numbers to text
for (i = 1, i <= nitems(id_list), i++,
id_list[i] = char(id_list[i]);
);
in_list = "('" || concat items(id_list, "', '") || "')";
show(in_list);
sql_statement = evalinsert(
"SELECT * from mytable m
WHERE m.id IN
^in_list^"
);
show(sql_statement);
이것을 실행하고 로그 창에서 결과를 찾으십시오.