0
我有一個包含libnames及其表的列表的表。我想創建一個子查詢來爲每個列出的表返回最小的創建日期,並將libname和table作爲子查詢中使用的libname.table傳遞。Proc SQL中的SAS子查詢
我創建了以下內容:
proc sql;
create table createdon_min as
select *,
cats("(select min(createdon) from "||strip(libname)||"."||strip(table_name)||")") as CREATEDON_FRM
from all_tables1
where freq="DAILY" AND part_date="CREATEDON";
quit;
不會產生錯誤,但createdon_frm值不執行,它只是創造像「(選擇分鐘(createdon)從pvaprov.institutional一個字符串值)」。
正確解析了libname和table,但是如何獲取要作爲子查詢執行的語句?
我不知道SAS'proc sql'支持動態SQL /準備語句。 –
使用'SELECT INTO'構造並將你的動態語句傳遞給宏變量。然後使用宏循環來構建一個新的PROC SQL來執行每條語句。 –