es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

SAS: crear parámetro que pueda buscar x meses atrás

He estado buscando una forma de crear una variable que me permita ejecutar un proc sql para seleccionar una tabla durante los últimos 10 meses específicos. El parámetro debe tener el formato de YYYYMM.

Por ejemplo, &YYYYMM = 202102
esto me permitirá ejecutar el proc sql para seleccionar datos desde 202005 hasta 202101.

¡Cualquier ayuda sería muy apreciada!
¡Muchas gracias!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para crear una variable que te permita ejecutar un select proc sql para 10 meses específicos hacia atrás, puedes usar el siguiente código SAS:

    %let YYYYMM = 202102;
    %let start_date = %eval(&YYYYMM - 1000); /*calcular la fecha de inicio restando 10 meses*/
    %let end_date = %eval(&YYYYMM - 1); /*calcular la fecha de fin como el mes anterior*/
    

    En este código, comienzas definiendo una variable macro llamada &YYYYMM para contener el año y mes deseados. Luego, utilizando la función %eval, creas dos nuevas variables macro start_date y end_date que representan las fechas de inicio y fin de tu selección proc sql.

    Luego puedes usar estas variables macro en tu código proc sql para seleccionar datos solo de los 10 meses especificados:

    proc sql;
    select *
    from my_table
    where date_column between "&start_date."d and "&end_date."d;
    quit;
    

    En este código, my_table es el nombre de la tabla de la que deseas seleccionar datos, y date_column es el nombre de la columna en esa tabla que contiene valores de fecha. La cláusula between limita la selección a aquellos registros que se encuentran dentro del rango de fechas especificado, el cual está definido utilizando las variables macro &start_date y &end_date.

Comments are closed.