sentencias programacion igual funciones espaƱol comandos sql macros sas datastep

sql - programacion - sas ejecutan una macro para cada instancia en un paso de datos



proc transpose sas (1)

Imagine que es el compilador de macros y reemplace la macro llamada con el código SAS real que generará. Recuerde que para el macroproceso, los valores de los parámetros de put(extract_start, date11.) Y put(extract_end, date11.) Son solo cadenas de caracteres.

Sospecho que debe usar la ejecución de llamada para que los valores de las variables del conjunto de datos extract_start y extract_end puedan pasarse a la macro.

data _null_; set extract_insert_dates; call execute(cats(''%nrstr(%insert_table_extract)('',put(extract_start, date11.),'','',put(extract_end,date11.),'')'')); run;

Tengo una macro que inserta datos en una tabla sobre un conjunto de marcos de tiempo dados.

Pasa por una serie de fechas de hasta (que se almacenan en un conjunto de datos) y ejecuta la macro con una instrucción de inserción proc sql.

Cuando verifico los datos al final de todo esto, noto que solo los datos del último período de entrada se encuentran en el nuevo conjunto de datos.

Aquí está mi código al llamar a la macro en el paso de datos.

data _null_; set extract_insert_dates; %insert_table_extract(put(extract_start, date11.),put(extract_end, date11.)); run;

¿Hay algo más que debería estar llamando en el paso de datos para que esto funcione e inserte datos (ejecute la macro) para cada uno de los períodos de destino, en lugar de solo el final?