Pick File () innerhalb der SQL-Abfrage?Hallo alle,
Zum ersten Mal posten, also sei vorsichtig mit mir 
Ich möchte zwei Tabellen in JMP zusammenfügen. Die erste ist eine Datentabelle, die von einem Spektrometer ausgegeben wird, die andere ist eine Referenztabelle. Die Verbindungsschlüssel für die Tabellen stimmen nicht genau überein, also habe ich hinzugefügt Maximum- und Minimum-Schlüsselspalten in die Referenztabelle, um sie in Bedingungen zu verwenden ((if (key > min key) and (key < max key) join other reference tables columns to this row).
Ich habe zuvor den JMP Query Builder verwendet, um diese zusammenzufügen, und es funktioniert recht gut. Allerdings frage ich mich jetzt, ob es möglich ist, das Pick-File-Objekt in diese Abfrage zu integrieren. Im Wesentlichen möchte ich, dass der Benutzer:
- Führen Sie die Abfrage aus
- Erhalten Sie ein Pop-up darüber, welche Datei sie analysieren möchten
- Die Abfrage würde dann ausgeführt werden und alle Schlüssel mit der Referenztabelle abgleichen, wo sie in den Minkey-Maxkey-Bereich fallen.
- Der Benutzer erhält dann die Eingabetabelle zurück, mit zusätzlichen Spalten, in denen die Abfrage die Verknüpfung herstellen konnte.
Ich habe ein paar Tage herumgealbert und hatte keine Freude. Das folgende Skript fragt nach der Eingabe der Pick-Datei, gibt nur die Tabelle zurück und versucht überhaupt nicht, eine Verknüpfung herzustellen.
Jede Hilfe/Anleitung ist willkommen.
New SQL Query(
Version( 130 ),
Connection( "JMP" ),
JMP Tables(
["Reference Table" =>
"ReferenceTablePath",
"Input Data" =>
Open(
Pick File(
"Select JMP File",
"InputData Directory Path",
{"All Files|*"},
1,
0,
"newJmpFile.jmp"),
columns(
New Column( "Key", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "Intensity", Numeric, "Continuous", Format( "Best", 12 ) )
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Tab, CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 0 ),
Column Names Start( 1 ),
Data Starts( 25 ),
Lines To Read( "All" ),
Year Rule( "20xx" )))]
),
QueryName( "SQLQuery2" ),
Select(
Column( "Key", "t1" ),
Column( "Intensity", "t1" ),
Column( "Value1", "t2" ),
Column( "Value2", "t2" )
),
From(
Table( "Input Data", Alias( "t1" ) ),
Table(
"Reference Table",
Alias( "t2" ),
Join(
Type( Left Outer ),
GE( Column( "Key", "t1" ), Column( "MinKey", "t2" ) ) &
LE( Column( "Key", "t1" ), Column( "MaxKey", "t2" ) )
)
)
)
) << Run
Betreff: Datei auswählen () in SQL-Abfrage?Hi @SamEllick
Ich habe Probleme mit der Pick File-Syntax in der SQL-Abfrage. Können Sie mir helfen?
New SQL Query(
Version( 130 ),
Connection( "JMP" ),
JMP Tables(
["Limits" =>
<STRONG>"Source(Open(
\!"C:\Jay\JMP\JMP Scripts\Python Scripts\JMP scripts\New folder\New folder\SQL 2\Limits.xlsx\!"</STRONG>,
Worksheets( \!"Limits\!" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( \!"-\!" )
)
))",
<STRONG>"SummaryTable" =>
"\C:\Jay\JMP\JMP Scripts\Python Scripts\JMP scripts\New folder\New folder\SQL 2\SummaryTable.jmp"
]</STRONG>
),
QueryName( "SQLQuery11" ),
Select(
Column( "Test Number", "t2" ),
Column( "Test Name", "t2" ),
Column( "Test Units", "t2" ),
Column( "LL", "t2" ),
Column( "UL", "t2" ),
Column( "N", "t2" ),
Column( "Failing Soft Bin", "t1" )
),
From(
Table( "Limits", Alias( "t1" ) ),
Table(
"SummaryTable",
Alias( "t2" ),
Join(
Type( Left Outer ),
EQ( Column( "Test Number", "t2" ), Column( "Test Number", "t1" ) )
& EQ( Column( "Test Name", "t2" ), Column( "Test Name", "t1" ) ) &
EQ( Column( "Test Units", "t2" ), Column( "Test Units", "t1" ) )
)
)
)
) << Run
Ich möchte zwei Pick-Dateibefehle in der SQL-Abfrage haben.
Irgendwelche Vorschläge?
Betreff: Datei auswählen () in SQL-Abfrage?Hi @cwillden
Keine Sorge, danke für die Idee, ich habe es geschafft, es zum Laufen zu bringen. Ich habe den Pick-Dateipfad in einer Variablen gespeichert und ihn dann in der Abfrage aufgerufen (genau wie Sie vorgeschlagen haben). Als ich dies zuvor versucht habe, habe ich auch das offene Objekt verwendet (Datei auswählen -> öffnen -> SQL-Abfrage), ohne Erfolg.
Es scheint, dass Sie nur brauchen: Datei auswählen -> SQL-Abfrage.
Prost
Betreff: Datei auswählen () in SQL-Abfrage?Hi @SamEllick ,
Haben Sie versucht, die Pick-Datei außerhalb der Abfrage auszuführen und nur den Pfad in einer Variablen zu speichern?Oder wählen Sie die Datei aus und öffnen Sie sie, bevor Sie die Abfrage starten und auf die offene Datentabelle verweisen?
Ich habe sehr wenig Erfahrung mit Query Builder, aber ich fühlte mich schlecht, dass Ihnen niemand geholfen hatte.Können Sie eine Art bereinigte Version der Tabellen posten, mit denen Sie arbeiten, damit wir versuchen können, es im Kontext herauszufinden?