Comment interroger SQL une base de données externe et une table JMP enregistrée ?Salut,
Dans un script JMP, j'ai vraiment besoin d'interroger à la fois une table JMP enregistrée et une table de base de données séparée, mais je n'arrive pas à comprendre comment ni à trouver une solution en ligne.Vous trouverez ci-dessous un exemple de code simplifié. Le problème est qu'une fois connecté à la base de données, je ne peux plus interroger les tables locales. Je sais que je pourrais effectuer une jointure de table dans JMP après la requête SQL sur la base de données externe, mais l'objectif est d'extraire uniquement les clients spécifiés dans la table clients.jmp dans la requête afin de réduire la quantité de données à interroger. J'ai essayé des choses telles que JOIN 'cust', JOIN 'Customers', etc.
Toute aide serait grandement appréciée, merci.
// open JMP table
cust = Open( "***\JMP Tables\Customers.jmp");
//connect to DB
SQLConnection = Create database connection("DRIVER=*** SERVER=***; DATABASE=database; Uid=***;Pwd=***");
//Query both
PrePUSQL01 =
"
SELECT
T.CustomerID,
C.Inc
FROM database.dbo.table AS T
JOIN cust AS C ON C.CustomerID = T.CustomerID
WHERE C.Inc = '1'
"
;
dt = Execute SQL(SQLConnection,
PrePUSQL01,
"dt"
);Re : Comment interroger SQL une base de données externe et une table JMP enregistrée ?Si je vous comprends bien, vous disposez d'une table de données JMP avec une liste de clients et vous souhaitez extraire des lignes d'une base de données qui correspondent à ces clients.
Vous pouvez le faire avec le Faire correspondre les valeurs des colonnes filtre dans Query Builder.

Il y a un exemple dans la documentation pour savoir comment utiliser le filtre de correspondance des colonnes.
Re : Comment interroger SQL une base de données externe et une table JMP enregistrée ?Chris a raison - vous devez créer une liste IN et l'inclure dans votre SQL.Cette conversation peut être utile.
Re : Comment interroger SQL une base de données externe et une table JMP enregistrée ?SALUT,
Ce que je pense que vous devrez peut-être faire est de lire les valeurs CustomerID à l'aide de GetValues (comme dans la première ligne ci-dessous) de la table JMP, puis d'insérer cette liste dans le code SQL (en utilisant l'opérateur IN pour la clause WHERE).
custIDList = :CustID << GetValues;
Ce n'est pas un code complet, mais un petit coup de pouce dans la bonne direction.
Vous devrez utiliser un peu de JSL pour insérer la liste dans le code SQL, mais au moins cela vous obtiendra uniquement les informations des clients qui ont un identifiant dans le fichier Customer.JMP. Vous pouvez ensuite utiliser Join dans JMP pour fusionner les deux ensembles.
J'espère que cela pourra aider,
Chris