C'est le code qui fonctionne actuellement, mais je voudrais l'automatiser et probablement coder en dur la section en gras italique ci-dessous - qui est la liste de CMOS_Lot-Wafer de la table de données "Wafer List", j'ai également joint le code que j'ai essayé de coder en dur cette section et ne fonctionne pas. Quelqu'un pourrait-il y jeter un œil et m'aider s'il vous plait, merci
(La liste de plaquettes est la liste d'utilisateurs que l'utilisateur fournira)
dt1 = Data Table( "Wafer List" ) << Stack(
columns( :Name( "Group A - Wafer Number" ), :Name( "Group B - Wafer Number" ) ),
Source Label Column( "Label" ),
Stacked Data Column( "CMOS-Lot-Wafer" ),
Output Table( "Stacked-waferList" )
);
dt3 = Open Database(
"DSN=MS_SQL;Description=WAFERVIEWER;Trusted_Connection=Yes;APP=JMP;WSID=USSJC-J9K98H2;DATABASE=PRODUCT;",
"SELECT T.[CHECK AXSELFTEST], T.[CMOS_Lot-WaferID] FROM Summary S
INNER JOIN WS_Tests T ON T.[CMOS_Lot-WaferID] = S.[CMOS_Lot-WaferID] AND T.RetestID = S.RetestID
<EM><STRONG>WHERE S.[CMOS_Lot-Wafer] IN ('DBM301-02',</STRONG>
<STRONG>'DBM308-12',
'DBM306-24',
'DBM297-03',
'DBM308-20',
'DBM297-02',
'DBM316-03',
'DBM306-09',
'DBM024-09'</STRONG>
<STRONG>)",
"Summary"</STRONG></EM>
);
dt2 = Data Table( "Stacked waferList" ) << Join(
With( Data Table( "Summary" ) ),
Select( :Label, :Name( "CMOS-Lot-Wafer" ), :Name( "CMOS_Lot-WaferID" ) ),
SelectWith( :DieID, :CHECK AXSELFTEST ),
By Matching Columns( :Name( "CMOS_Lot-WaferID" ) = :Name( "CMOS_Lot-WaferID" ) ),
Drop multiples( 0, 0 ),
Include Nonmatches( 1, 0 ),
Preserve main table order( 1 ),
Output Table( "WS- Summary for WaferList" )
);
// Le code ne fonctionne PAS - J'ai essayé de coder en dur la partie CMOS_Lot-Wafer mais cela ne fonctionne pas
(La liste de plaquettes est la liste d'utilisateurs que l'utilisateur fournira)
dt1 = Data Table( "Wafer List" ) << Stack(
columns( :Name( "Group A - Wafer Number" ), :Name( "Group B - Wafer Number" ) ),
Source Label Column( "Label" ),
Stacked Data Column( "CMOS-Lot-Wafer" ),
Output Table( "Stacked-waferList" )
);
SQLConnection = Create Database Connection(
"DSN=MS_SQL;Description=WAFERVIEWER;Trusted_Connection=Yes;APP=JMP;WSID=USSJC-J9K98H2;DATABASE=ISTANBUL;"
);
PrePUSQL01 =
"SELECT
T.CHECK AXSELFTEST,
C.CMOS_Lot-Wafer
FROM database.dbo.WS_tests AS T
JOIN Stacked waferList AS C ON C.CMOS_Lot-Wafer = T.CMOS_Lot-Wafer";
dt = Execute SQL( SQLConnection, PrePUSQL01, "dt" );
Le Générateur de requêtes SQL dans JMP le fera automatiquement pour vous. Pas besoin d'écrire le JSL vous-même.
Dans le cadre de la requête, vous pouvez construire un filtre . Ce filtre peut importer des données en faisant correspondre les valeurs d'une table de données existante , exactement comme vous essayez de le faire ici.
Après avoir créé la requête, vous pouvez enregistrer le script d'exécution pour que le JSL exécute la requête dans le cadre d'un script plus volumineux.
Cela ne ressemble pas à un code SQL valide :
"SELECT
T.CHECK AXSELFTEST,
C.CMOS_Lot-Wafer
FROM database.dbo.WS_tests AS T
JOIN Stacked waferList AS C ON C.CMOS_Lot-Wafer = T.CMOS_Lot-Wafer";
Il semble que vous essayez de combiner SQL avec JSL, ce qui n'est pas possible.L'instruction SQL s'exécute-t-elle dans un package d'interface de base de données tel que TOAD, PL/SQL Developer, SQL Navigator, etc. ?