SQL 쿼리 결과를 변수에 할당하려면 어떻게 해야 하나요?안녕하세요! 저는 JMP/JSL 스크립팅을 처음 접했고, 알아내는 데 어려움을 겪고 있습니다. 제가 하려는 일은 매우 간단할 것 같지만, 예상대로 아무것도 작동하지 않는 것 같고, 구글이 저를 실망시키고 있습니다.
내가 하려는 것: 나는 몇 가지 매개변수를 전달하여 SQL 데이터베이스에서 제어 한계 값을 반환하는 간단한 저장 프로시저를 가지고 있습니다. 그런 다음 그 값을 열에 대한 Levey Jennings 제어 한계에 할당하려고 합니다. 아래 코드는 내가 얻은 것입니다.
이 코드는 내가 원하는 값을 담은 표를 출력합니다.
// Get limit value
LimitType = "Control";
LimitLevel = "Lower";
utagID = "6720";
vLCL = open database(
"Driver={SQL Server};Server=FC-SQL-P\PROD;Database=ctc_config;Trusted_Connection=yes",
"cus_sp_taglimits
@LimitType = " || LimitType || ",
@LimitLevel = " || LimitLevel || ",
@utagid = '" || utagID || "'"
);그런 다음 "vLCL" 값을 사용하여 다른 테이블의 열 속성에 적용하려고 합니다.
// Change column property
Data Table( "testTable" ):testColumn << Set Property(
"Control Limits",
{Levey Jennings( LCL( vLCL ) )}
);위 스크립트는 "vLCL"을 숫자로 바꾸면 잘 작동합니다.
내가 막혔다고 생각하는 부분은, 내 SQL 결과를 실제 변수로 어떻게 사용할 수 있을까? 값을 새 테이블로 끌어오는 대신 변수에 직접 쿼리할 방법이 있을까?
이에 대한 도움이 있다면 정말 감사하겠습니다! 미리 감사드립니다!!
-계집애
자동화 및 스크립팅Re: SQL 쿼리 결과를 변수에 어떻게 할당합니까?귀하의 vLCL에 원하는 것이 있다면 이를 평가하기만 하면 됩니다. 다음은 이와 같은 열 속성을 사용하여 이를 수행하는 방법에 대한 한 가지 옵션입니다.
Eval(EvalExpr(
Data Table("testTable"):testColumn << Set Property(
"Control Limits",
{Levey Jennings(LCL(Expr(vLCL)))}
);
));
vLCL에 무엇이 저장되어 있는지 확실하지 않은 경우 예를 들어 다음을 추가할 수 있습니다.
show(vLCL);
질의 후 원하는 내용이 있는지 확인하세요.
Re: SQL 쿼리 결과를 변수에 어떻게 할당합니까?답변 감사합니다! 공유하신 내용에 맞춰 편집을 시도했는데 "쇼"를 하면 이런 내용이 나옵니다:
vLCL = DataTable("SQL 결과 799");
그래서 제 문제는 실제로 쿼리 결과를 vLCL에 숫자 값으로 할당하지 않는다는 것 같습니다. 이걸 어떻게 고칠 수 있는지 아십니까?
다시 한번 감사드립니다!!
계집애
Re: SQL 쿼리 결과를 변수에 어떻게 할당합니까?vLCL이 보유한 결과 테이블에 따라 다릅니다. 데이터 테이블 서브스크립팅으로 충분할 수 있으며, 때로는 << get rows where와 결합해야 할 수도 있습니다.
아래는 LSL 및 USL 열의 첫 번째 행에서 값을 가져오는 데이터 테이블 구독의 매우 기본적인 예입니다.
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(1),
Compress File When Saved(1),
New Column("LSL", Numeric, "Continuous", Format("Best", 12), Set Values([1])),
New Column("USL", Numeric, "Continuous", Format("Best", 12), Set Values([2]))
);
my_lsl = dt[1, "LSL"];
my_usl = dt[1, "USL"];
데이터 테이블 구독
Re: SQL 쿼리 결과를 변수에 어떻게 할당합니까?오 세상에! 감사합니다. 제가 놓친 게 바로 이거였어요!
저는 코드를 다음과 같이 조정했고 완벽하게 작동합니다!
// Get limit value -- returns a new table with a single value
LimitType = "Control";
LimitLevel = "Lower";
utagID = "6720";
tblLCL = open database(
"Driver={SQL Server};Server=FC-SQL-P\PROD;Database=ctc_config;Trusted_Connection=yes",
"cus_sp_taglimits
@LimitType = " || LimitType || ",
@LimitLevel = " || LimitLevel || ",
@utagid = '" || utagID || "'"
);
//assign table value to variable
vLCL = tblLCL[1,1];
// Change column property
Eval(EvalExpr(
Data Table( "testTable" ):testColumn << Set Property(
"Control Limits",
{Levey Jennings( LCL( Expr(vLCL) ) )}
);
));감사합니다 감사합니다 감사합니다!
-계집애