Hola, tengo una tabla de entrada A que se parece a esta:

La tabla de entrada B se ve así,

Quiero crear una tabla de salida C: debería verse así,

Puedo hacer esto manualmente. ¿Hay alguna manera de escribir esto?
Las tablas/uniones pueden hacer el trabajo; utilícelas como especificación de coincidencia Unión cartesiana:

Los nombres de las columnas en ambas tablas deben diferir entre sí; de lo contrario, el nombre de la tabla de origen se agregará al nombre de la columna.
dt1 = New Table( "dt1",
Add Rows( 3 ),
New Column( "Column 1", Character, Set Values( {"A", "B", "C"} ) ),
New Column( "Column 2", Set Values( [1, 2, 3] ) ),
New Column( "Column 3", Set Values( [1, 2, 3] ) )
);
dt2 = New Table( "dt2",
Add Rows( 3 ),
New Column( "Column 4",
Character,
Set Values( {"X", "Y", "Z"} )
)
);
dt1 << Join(
With( dt2 ),
Cartesian Join
);