Non sono sicuro di capire esattamente cosa ti piacerebbe vedere ma ecco la JSL generata da una query come ho mostrato sopra.
Si noti la parte Where (). È pura JSL. Non ci sono variabili che potresti inserire nel tuo SQL personalizzato.
Sembra che le tue scelte per lo sforzo siano:
- Scrivere il JSL per costruire i prompt e capire come inserire le risposte nel tuo SQL; o,
- Convertire la query in Query Builder e lasciandolo richiedere.
Non sono sicuro quale sia lo sforzo maggiore per te, ma la conversione in Query Builder sembra più flessibile e ti offrirà più opzioni a lungo termine.
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;
Sì. quando costruisco le query direttamente in JMP, posso ottenere i prompt. Il mio problema è quando prendo una query esistente e inserisco nella query sql personalizzata, i miei prompt non sono disponibili. Per una semplice query, il generatore di query in JMP funziona, ma ho alcuni join abbastanza lunghi e complicati che sto cercando di non dover ricostruire.
Se si utilizza il Generatore di query, genererà automaticamente le richieste utilizzando l'opzione "Prompt durante l'esecuzione" nell'area dei filtri.

Quando si esegue la query, all'utente verrà richiesto. Non c'è motivo per costruirlo da solo.

Ciao @Joeystringer ,
Ecco un esempio di qualcosa che puoi eseguire prima di iniziare la query:
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);Questa finestra chiede all'utente di inserire un numero nella casella di modifica del numero. Il pulsante "OK" ottiene il valore nella casella e lo salva come "lineID" che è possibile utilizzare nella query. L'opzione "<< Modal" rende la finestra modale, il che significa che JMP non eseguirà il resto dello script che viene dopo la finestra finché l'utente non preme "OK".
Consiglio vivamente di dare un'occhiata alla Guida allo scripting (Guida> Libri> Guida allo scripting) per imparare come scrivere script nelle finestre di dialogo se vuoi fare qualcosa di più complicato
Uso molto ssrs e sono abituato ad avere parametri come @Sitename o @Date. Ho diverse query che uso su altre piattaforme, ma mi piace poterle inserire in JMP. il problema che ho riscontrato è che non so come usare la finestra di prompt dei miei parametri quando eseguo il sql personalizzato. Ad esempio, come scriverò questo in modo che venga visualizzata una finestra che richiede "Lineid"? sarebbero in grado di rispondere e la query verrebbe eseguita.
SELEZIONARE
DA tblline
dove tblline.lineid=@LineID;