Joindre des tables dans la fonction de requêteSalut,
Je connais assez bien les scripts JSL, même si j'ai quelques requêtes SQL personnalisées que j'ai écrites dans le générateur de requêtes. J'essaie de mettre ces requêtes dans un script JSL sans avoir à les réécrire à l'aide de la fonction JOIN
Est-il possible pour moi de joindre les tables dans la fonction Query() ?
Par exemple dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dr = Open( "$RANDOM_DATA/Petite classe.jmp" );
Ci-dessous, ce que j'essaie / je suppose que le code devrait ressembler
RESULTAT = CHERCHER (dt, dr, "SELECT *
DE 'Big Class' BC
JOIN 'Small Class' SC on SC.name = BC.name;");
Les seuls exemples que j'ai trouvés concernaient la fonction Query utilisée avec 1 table.
Merci,
David
Re : Joindre des tables dans la fonction de requêteMerci!
Re : Joindre des tables dans la fonction de requêteMerci!Re : Joindre des tables dans la fonction de requêteEt comme pour les autres plates-formes de génération de table dans JMP, si vous exécutez la plate-forme interactive, puis examinez l'entrée "Source" dans le panneau de table de la nouvelle table de données, vous verrez le script JSL nécessaire pour générer le tableau de données.Voici le script de l'entrée Source, pour l'exemple Join qui @cwillden fourni
New SQL Query(
Connection( "JMP:RESTRICT=Y;UUID=4E866C55-4F0A-45D4-EBE9AE92DC4D8FB7" ),
JMP Tables(
["t1" => "C:\Program Files\SAS\JMPPRO\13\Samples\Data\SATByYear.jmp",
"t2" => "C:\Program Files\SAS\JMPPRO\13\Samples\Data\US Demographics.jmp"]
),
QueryName( "SQLQuery1" ),
CustomSQL(
"SELECT t1.State, t1.\!"SAT Math\!", t2.\!"College Degrees\!",
t2.\!"Eighth Grade Math\!"
FROM t1
LEFT OUTER JOIN t2
ON t1.State = t2.State
WHERE t1.'SAT Math' > 550;
"
)
) << RunRe : Joindre des tables dans la fonction de requêteLa fonction Query() dans l'index Scripting a en fait un bel exemple de ce que vous voulez :
// Using aliases, performing a join
dtSAT = Open(
"$SAMPLE_DATA/SATByYear.jmp",
Invisible
);
dtUS = Open(
"$SAMPLE_DATA/US Demographics.jmp",
Invisible
);
Query(
Table( dtSAT, "t1" ),
Table( dtUS, "t2" ),
"\[SELECT t1.State, t1."SAT Math", t2."College Degrees",
t2."Eighth Grade Math"
FROM t1
LEFT OUTER JOIN t2
ON t1.State = t2.State
WHERE t1.'SAT Math' > 550;
]\"
);