Choisissez Fichier () dans la requête SQL ?Salut tout le monde,
C'est la première fois que je poste donc allez-y doucement avec moi 
Je souhaite joindre deux tables dans JMP. La première est une table de données issue d'un spectromètre, l'autre est une table de référence. Les clés de jointure pour les tables ne correspondent pas exactement, j'ai donc ajouté colonnes de clé maximum et minimum dans la table de référence à utiliser dans les conditions ((if (clé > clé min) et (clé < clé max) joignent d'autres colonnes de table de référence à cette ligne).
J'ai déjà utilisé le générateur de requêtes JMP pour les joindre et cela fonctionne assez bien. Cependant, je me demande maintenant s'il est possible d'intégrer l'objet pick file dans cette requête. Essentiellement, je souhaite que l'utilisateur :
- Exécutez la requête
- Obtenir une fenêtre contextuelle indiquant le fichier qu'ils souhaitent analyser
- La requête s'exécuterait alors, faisant correspondre toutes les clés à la table de référence où elle se situe dans la région minkey - maxkey.
- L'utilisateur récupère alors la table d'entrée, avec des colonnes supplémentaires où la requête a pu effectuer la jointure.
J'ai rigolé pendant quelques jours et je n'ai eu aucune joie. Le script ci-dessous demande l'entrée du fichier de sélection, ne renvoie que la table, il n'essaie pas du tout de faire une jointure.
Toute aide/orientation est appréciée.
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 : Choisir le fichier () dans la requête SQL ?Salut @SamEllick
J'ai des problèmes avec la syntaxe Pick File dans la requête SQL. Pouvez-vous m'aider ?
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
Je veux avoir deux commandes Pick file dans la requête SQL.
Aucune suggestion?
Re : Choisir le fichier () dans la requête SQL ?Salut @cwillden
Pas de soucis, merci pour l'idée, j'ai réussi à le faire fonctionner. J'ai stocké le chemin du fichier de sélection dans une variable, puis je l'ai appelé dans la requête (comme vous l'avez suggéré). Lorsque j'ai essayé cela précédemment, j'ai également utilisé l'objet ouvert (choisir le fichier -> ouvrir -> requête sql), sans succès.
Il semble que vous ayez juste besoin de: pick file -> sql query.
Acclamations
Re : Choisir le fichier () dans la requête SQL ?Salut @SamEllick ,
Avez-vous essayé de faire le Pick File en dehors de la requête et de simplement stocker le chemin dans une variable?Ou choisir le fichier et l'ouvrir avant de lancer la requête et de référencer la table de données ouvertes ?
J'ai très peu d'expérience avec Query Builder, mais je me sentais mal que personne ne vous ait aidé.Pouvez-vous publier une sorte de version épurée des tables avec lesquelles vous travaillez afin que nous puissions essayer de la comprendre dans son contexte ?