나는 당신이보고 싶은 것을 정확히 이해하고 있는지 확신 할 수 없지만, 위에서 보여준 것과 같은 질의로부터 생성 된 JSL이 있습니다.
Where () 부분을 주목하십시오. 그것은 순수한 JSL입니다. 사용자 지정 SQL에 고정시킬 수있는 변수는 없습니다.
노력에 대한 선택은 다음과 같습니다.
- 프롬프트를 작성하고 SQL에 응답을 삽입하는 방법을 파악하기 위해 JSL 작성하기. 또는,
- 쿼리를 쿼리 작성기로 변환하고 프롬프트를 표시합니다.
어떤 노력이 더 많은 노력인지는 모르겠지만 Query Builder 로의 전환은보다 유연 해 보이며 장기적으로 더 많은 옵션을 제공 할 것입니다.
New SQL Query(
Version( 130 ),
Connection(
connection_string
),
QueryName( "inventory" ),
Select(
Column( "warehouseid", "t1" ),
Column( "sku", "t1" ),
Column( "sku_description", "t1" ),
Column( "quantityonhand", "t1" ),
Column( "quantityonorder", "t1" )
),
From(
Table( "inventory", Schema( "Sporting Goods By Stan" ), Alias( "t1" ) ),
Table(
"warehouse",
Schema( "Sporting Goods By Stan" ),
Alias( "t9" ),
Join(
Type( Left Outer ),
EQ( Column( "warehouseid", "t9" ), Column( "warehouseid", "t1" ) )
)
),
Table(
"order_item",
Schema( "Sporting Goods By Stan" ),
Alias( "t6" ),
Join(
Type( Left Outer ),
EQ( Column( "sku", "t6" ), Column( "sku", "t1" ) )
)
),
Table(
"sku_data",
Schema( "Sporting Goods By Stan" ),
Alias( "t8" ),
Join(
Type( Left Outer ),
EQ( Column( "sku", "t8" ), Column( "sku", "t1" ) )
)
),
Table(
"retail_order",
Schema( "Sporting Goods By Stan" ),
Alias( "t7" ),
Join(
Type( Left Outer ),
EQ( Column( "ordernumber", "t7" ), Column( "ordernumber", "t6" ) )
)
)
),
Where(
In List(
Column( "department", "t8" ),
{"Water Sports"},
UI(
SelectListFilter(
ListBox,
Base(
"Categorical",
Prompt(
"Select a department:",
Character,
PromptName( "t8.department_1" ),
ValueSource(
Column(
"department",
Alias( "department" ),
Table(
"sku_data",
Schema( "Sporting Goods By Stan" )
)
)
)
)
)
)
)
)
)
) << Run;
예. JMP에서 직접 쿼리를 작성하면 프롬프트를 얻을 수 있습니다. 내 문제는 기존 쿼리를 가져 와서 사용자 지정 SQL 쿼리에 넣을 때 내 프롬프트를 사용할 수 없다는 것입니다. 간단한 쿼리의 경우 JMP의 쿼리 작성기가 작동하지만 재구성 할 필요가없는 상당히 길고 복잡한 조인이 있습니다.
쿼리 작성기를 사용하면 필터 영역에서 "실행시 프롬프트"옵션을 사용하여 자동으로 프롬프트가 작성됩니다.

쿼리를 실행하면 사용자에게 메시지가 표시됩니다. 스스로 구축 할 이유가 없습니다.

안녕하세요 @ 조이스트 린저 ,
다음은 쿼리를 시작하기 전에 실행할 수있는 예제입니다.
dlg = New Window("Parameter Specification", << Modal,
V List Box(
Text Box("Please specify the value of lineID."),
H List Box(
Text Box("LineID: "),
neb = Number Edit Box();
),
Button Box("OK", LineID = neb << Get);
)
);
Show(LineID);이 창은 숫자 편집 상자에 숫자를 입력하도록 사용자에게 요청합니다. "OK"버튼은 상자의 값을 가져 와서 쿼리에 사용할 수있는 "lineID"로 저장합니다. "<< Modal"옵션은 윈도우를 모달로 만듭니다. 즉, JMP는 사용자가 "OK"를 누를 때까지 윈도우 뒤의 나머지 스크립트를 실행하지 않습니다.
좀 더 복잡한 작업을 원하면 스크립트 가이드 (도움말> 책> 스크립팅 가이드)를 참조하여 스크립트 대화 상자를 만드는 방법을 배우는 것이 좋습니다.
나는 ssrs를 많이 사용하며 @Sitename이나 @Date 같은 매개 변수를 갖는 데 익숙하다. 다른 플랫폼에서 사용하는 몇 가지 쿼리가 있지만 JMP에 넣을 수 있기를 좋아합니다. 내가 만나는 문제는 사용자 지정 SQL을 수행 할 때 매개 변수에 대해 프롬프트 상자를 사용하는 방법을 모르겠다는 것입니다. 예를 들어, 상자에 "Lineid"를 묻는 메시지가 표시되도록하려면 어떻게 작성해야합니까? 응답 할 수 있고 쿼리가 실행됩니다.
고르다 *
FROM tblline
어디 tblline.lineid=@LineID;