¿Elegir archivo () dentro de la consulta SQL?Hola a todos,
Publicación por primera vez, así que sea fácil para mí;)
Me gustaría unir dos tablas juntas dentro de JMP. La primera es una tabla de datos obtenida de un espectrómetro, la otra es una tabla de referencia. Las teclas de unión para las tablas no coinciden exactamente, así que he agregado las columnas de clave máxima y mínima en la tabla de referencia para usar en condiciones ((if (key> min key) y (key
Anteriormente he usado el generador de consultas JMP para unirlos y funciona bastante bien. Sin embargo, ahora me pregunto si es posible integrar el objeto de archivo de selección en esta consulta. Esencialmente me gustaría que el usuario:
- Ejecutar la consulta
- Obtenga una ventana emergente sobre qué archivo les gustaría analizar
- La consulta se ejecutaría, haciendo coincidir cualquier clave con la tabla de referencia en la que se encuentra dentro de la región minkey - maxkey.
- El usuario luego recupera la tabla de entrada, con columnas adicionales donde la consulta ha podido realizar la unión.
He estado dando vueltas por un par de días y no he tenido ninguna alegría. La siguiente secuencia de comandos solicita la entrada del archivo de selección, solo devuelve la tabla, no intenta realizar una unión en absoluto.
Cualquier ayuda / orientación es apreciada.
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
Re: Pick File () dentro de la consulta SQL?Hola @cwillden
No te preocupes, gracias por la idea, logré que funcionara. Almacené la ruta del archivo de selección en una variable y luego la llamé dentro de la consulta (tal como sugirió). Cuando intenté esto anteriormente, también usé el objeto abierto (archivo de selección -> abrir -> consulta de SQL), sin scucess.
Parece que solo necesitas: pick file -> sql query.
Aclamaciones
Re: Pick File () dentro de la consulta SQL?Hola @SamEllick ,
¿Ha intentado hacer el archivo de selección fuera de la consulta y simplemente almacenar la ruta en una variable? ¿O, elija el archivo y ábralo antes de iniciar la consulta y hacer referencia a la tabla de datos abierta?
Tengo muy poca experiencia con Query Builder, pero me sentí mal de que nadie te haya ayudado. ¿Puede publicar algún tipo de versión desinfectada de las tablas con las que está trabajando para que podamos tratar de resolverlo en contexto?
Re: ¿Seleccionar archivo () dentro de la consulta SQL?Hola @SamEllick
Tengo problemas con la sintaxis de Pick File en la consulta SQL. Me puedes ayudar
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
Quiero tener dos comandos Pick file en la consulta SQL.
¿Alguna sugerencia?