Generalizzare il codice per farlo funzionare con Summerize/Summary.
dt = tabella dati corrente();
Riepilogo( g = By(:Colonna 0, :Colonna 1 ) );
Per( i = 1, i <= N Elementi( g[1] ), i++,
r = dt << Ottieni righe Dove( dt:Colonna 0 == g[1][i] & dt:Colonna 1 == g[2][i]);
dt:Colonna 3[r] = Concat Elementi( dt:Colonna 2[r], "_" );
);
nt = dt << Riepilogo( Gruppo( :Colonna 0, :Colonna 1, :Colonna 3 ) );
molto utile 
Fino ad ora, ho usato Split per ordinare le voci, combinarle e unirle alla tabella principale:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
<BR />//--------
dt << new column ("rank", Formula( Col Rank( :name, :age ) ));
// put names next to each other, grouped by age
DTsplit=dt<< Split(
Split By( :rank),
Split( :name ),
Group( :age )
);
// Combine columns to a linge column
DTsplit << Combine Columns(
columns(
:"1"n, :"2"n, :"3"n, :"4"n, :"5"n, :"6"n, :"7"n, :"8"n, :"9"n, :"10"n,
:"11"n, :"12"n
),
Column Name( "allNames" ),
Delimiter( "," )
);<BR /><BR />//-----
// Update data tables
dt<< Update(
With( DTsplit ),
Match Columns( :age = :age ),
Add Columns from Update Table( :allNames ),
Replace Columns in Main Table( None )
);ottenere:

Se Summarize avesse un'opzione per concatenare le stringhe, l'intera parte tra //---- potrebbe essere sostituita da un semplice Summarize.