如何从表SAS中的日期列表创建宏变量



我有一个名为work的工作表。WEEK_YEAR_FESTIVITA,在"HolidayDate"字段中包含日期为08dec2022和09dec2022的两条记录我想把这个列表转换成一个宏变量,比如"Elenco_Date = ' 08dec2022d,'09dec2022'd"以此类推,以获取表WORK.WEEK_YEAR_FESTIVITA中其他可能的日期。我尝试了这个过程SQL:

proc SQL noprintselect distinct HolidayDate into: Elenco_Date由"'d,"分隔从WORK.WEEK_YEAR_FESTIVITA;辞职;

%把,Elenco_Date;

但结果是:

ELENCO_DATE = 08dec2022d,09DEC2022;

ELENCO_DATE = ' 08dec2022d,' 09dec2022d;

根据需要

你有什么建议吗?

感谢

在SELECT语句的列列表部分创建日期文本字符串。

select distinct quote(put(HolidayDate,date9.))||'d'
into :Elenco_Date separated by ',' 
from WORK.WEEK_YEAR_FESTIVITA
;

或者您可以将原始天数存储到宏变量中。

select distinct HolidayDate format=6.
into :Elenco_Date separated by ',' 
from WORK.WEEK_YEAR_FESTIVITA
;

因为使用

where date = "08DEC2022"d

where date = 22987

最新更新