Ich bin mir nicht sicher, ob ich genau verstehe, was Sie sehen möchten, aber hier ist die JSL, die aus einer Abfrage generiert wurde, wie ich sie oben gezeigt habe.
Beachten Sie den Teil Where(). Es ist reines JSL. Es gibt keine Variablen, die Sie in Ihr benutzerdefiniertes SQL einfügen könnten.
Es sieht so aus, als hätten Sie folgende Optionen für den Aufwand:
- Schreiben Sie die JSL, um die Eingabeaufforderungen zu erstellen, und finden Sie heraus, wie Sie die Antworten in Ihr SQL einfügen. oder,
- Konvertieren Sie die Abfrage in den Abfrage-Generator und lassen Sie sie für Sie auffordern.
Ich bin mir nicht sicher, was für Sie mehr Aufwand bedeutet, aber die Umstellung auf Query Builder scheint flexibler zu sein und bietet Ihnen auf lange Sicht mehr Optionen.
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;
Ja. Wenn ich die Abfragen direkt in JMP erstelle, kann ich die Eingabeaufforderungen erhalten. Mein Problem besteht darin, dass meine Eingabeaufforderungen nicht verfügbar sind, wenn ich eine vorhandene Abfrage nehme und in die benutzerdefinierte SQL-Abfrage einfüge. Für eine einfache Abfrage funktioniert der Abfrage-Builder in JMP, aber ich habe einige ziemlich lange und komplizierte Verknüpfungen, die ich nicht neu erstellen muss.
Wenn Sie den Abfrage-Generator verwenden, werden die Eingabeaufforderungen mithilfe der Option „Eingabeaufforderung bei Ausführung“ im Filterbereich automatisch für Sie erstellt.

Wenn Sie die Abfrage ausführen, wird der Benutzer dazu aufgefordert. Kein Grund, es selbst zu bauen.

Hallo @Joeystringer ,
Hier ist ein Beispiel für etwas, das Sie ausführen können, bevor Sie die Abfrage starten:
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);In diesem Fenster wird der Benutzer lediglich aufgefordert, eine Nummer in das Nummernbearbeitungsfeld einzugeben.Die Schaltfläche „OK“ ruft den Wert im Feld ab und speichert ihn als „lineID“, die Sie in Ihrer Abfrage verwenden können.Die Option „<< Modal“ macht das Fenster modal, was bedeutet, dass der JMP den Rest des Skripts, das nach dem Fenster kommt, erst ausführt, wenn der Benutzer „OK“ drückt.
Ich empfehle Ihnen dringend, sich das Skripthandbuch (Hilfe > Bücher > Skripthandbuch) anzusehen, um zu erfahren, wie Sie Skriptdialoge erstellen, wenn Sie etwas Komplizierteres tun möchten
Ich verwende SSRS häufig und bin es gewohnt, Parameter wie @Sitename oder @Date zu haben. Ich habe mehrere Abfragen, die ich auf anderen Plattformen verwende, möchte sie aber gerne in JMP einfügen. Das Problem, auf das ich stoße, ist, dass ich nicht weiß, wie ich das Eingabeaufforderungsfeld für meine Parameter verwenden soll, wenn ich die benutzerdefinierte SQL ausführe. Wie würde ich das beispielsweise schreiben, damit ein Feld erscheint, in dem nach „Lineid“ gefragt wird? Sie könnten antworten und die Abfrage würde ausgeführt.
WÄHLEN *
VON tblline
wobei tblline.lineid=@LineID;