Hola,
Estoy tratando de seleccionar (y eliminar) duplicados después de combinar dos tablas de datos con una columna de origen, tengo 2 criterios para una selección:
-Los valores duplicados debería fósforo en 2 columnas (Coincidencia: col1,: col2), funciona bien.
-Los valores duplicados debería no tienen el mismo valor en la columna fuente generada.
No estoy seguro de cómo puedo codificar el segundo criterio, ¿hay alguna línea simple! = o 'no' coincide con ': Tabla de origen'?
dt1 << concatenate (dt1, dt2, append to first table(1), Create Source Column ) ;
dt1 << Select Duplicate Rows (Match (:col1, :col2)) ;
dt1 << Delete Rows();
Creo que debes adoptar un enfoque diferente.Su JSL enviado tiene un par de problemas y una mala interpretación de la función Seleccionar filas duplicadas.
Su declaración de concatenación crea una nueva tabla de datos donde su tabla de datos dt1 se replica dos veces en la tabla de salida.
La función Seleccionar filas duplicadas solo encuentra duplicados dentro de la misma columna.
Le sugiero que busque usar la plataforma Join, que tiene la capacidad de determinar qué filas entre las 2 tablas de datos tienen valores duplicados.
Aquí hay un ejemplo de comparación entre 2 tablas de datos y encontrar que la persona llamada Robert está en ambas tablas.

Names Default To Here( 1 );
dt1 = New Table( "one",
Add Rows( 20 ),
New Column( "name",
Character,
"Nominal",
Set Values(
{"KATIE", "LOUISE", "JANE", "JACLYN", "LILLIE", "TIM", "JAMES", "ROBERT", "BARBARA", "ALICE",
"SUSAN", "JOHN", "JOE", "MICHAEL", "DAVID", "JUDY", "ELIZABETH", "LESLIE", "CAROL", "PATTY"}
)
)
);
dt2 = New Table( "Two",
Add Rows( 20 ),
New Column( "name",
Character,
"Nominal",
Set Values(
{"FREDERICK", "ALFRED", "HENRY", "LEWIS", "EDWARD", "CHRIS", "JEFFREY", "MARY", "AMY", "ROBERT",
"WILLIAM", "CLAY", "MARK", "DANNY", "MARTHA", "MARION", "PHILLIP", "LINDA", "KIRK", "LAWRENCE"}
)
)
);
dt3 = dt1 << Join(
With( dt2 ),
Merge Same Name Columns,
By Matching Columns( :name = :name ),
Drop multiples( 1, 0 ),
Include Nonmatches( 1, 1 ),
Preserve main table order( 1 ),
Output Table( "together" )
);
dt3 << select where( :Match Flag == 3 );
//dt3 << Delete Rows();
//dt3 << delete columns(match flag);Gracias Jim, ¡esto funciona bien!
Feliz de aprender más sobre la función Unirse.
Saludos,
Stijn