Salut,
J'ai deux tables comme ci-dessous.
Tableau 1 :
| Nom | Section | Sujet |
| Adam | UN | Mathématiques |
| Bob | UN | science |
| Chris | B | Anglais |
Tableau 2:
| Nom | Section | Score |
| Adam | UN | 80 |
| Bob | UN | 90 |
| Chris | B | 84 |
Je veux joindre les deux tables dans jsl et obtenir la table de sortie suivante mais je ne veux pas donner explicitement les noms de colonnes correspondants. Les colonnes correspondantes seraient les colonnes avec le même nom de colonne dans les deux tables. Les colonnes correspondantes peuvent varier. Il peut s'agir de 2 (comme dans l'exemple illustré) ou de 3 ou plus, mais la colonne correspondante aurait le même nom de colonne.
sortir:
| Nom | Section | Sujet | Score |
| Adam | UN | Mathématiques | 80 |
| Bob | UN | science | 90 |
| Chris | B | Anglais | 84 |
Merci 
Cela devrait le faire:
DT1 = New Table("DT1",
<< Add Rows(3),
<< New Column("Name", character, Values({"Adam","Bob","Chris"})),
<< New Column("Section", character, Values({"A","A","B"})),
<< New Column("Subject", character, Values({"Math","Science","English"}))
);
DT2 = New Table("DT2",
<< Add Rows(3),
<< New Column("Name", character, Values({"Adam","Bob","Chris"})),
<< New Column("Section", character, Values({"A","A","B"})),
<< New Column("Score", numeric,continous, Values({80,90,84}))
);
LSTcols1 = DT1 << Get Column Names(string);
LSTcols2 = DT2 << Get Column Names(string);
STRjoinCols = "";
For(LVC=1,LVC<=N Items(LSTcols1),LVC++,
STRcol = LSTcols1[LVC];
If(
Contains(LSTCols2,STRcol)
,
If(
STRjoinCols == ""
,
STRjoinCols = ":"||STRcol||"==:"||STRcol
,
STRjoinCols = STRjoinCols||", :"||STRcol||"==:"||STRcol
);
);
);
expr = Eval Insert(
"\[
DT3 = DT1 << Join(
With( DT2 ),
Merge Same Name Columns,
Match Flag( 0 ),
By Matching Columns( ^STRjoinCols^ ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 0 ),
Output Table( "DT3" )
);
]\"
);
Eval( Parse( expr ) );