gpt4 book ai didi

sql - 使用proc sql创建表时如何调用选择日期范围的提示?

转载 作者:行者123 更新时间:2023-12-04 10:55:17 25 4
gpt4 key购买 nike

我想问一下如何在创建表的 proc sql 中调用提示(我使用的是 SAS Enterprise Guide)。
我有兴趣将一个数字与日期月份相关联(如下表所示),其中可以使用提示选择 d_month。

time_window       d_month     database_name   table_name    short_name    group_field               field                  field_list
1 '2018-02-28' Dtb1 table1 Tab1 date_month department Tab1.id Tab1.balance id balance
1 '2018-02-28' Dtb1 table2 Tab2 date_month Tab2.credit credit
...
2 '2018-03-31' Dtb1 table3 Tab3 date_month department Tab3.debit debit
2 '2018-03-31' Dtb2 table4 Tab4 date_month department ...

我用了
   proc sql noprint;
select time_w into time_w_lower from &time_table..time_table where time_last="&time_win_min_end"d;
quit;

proc sql noprint;
select time_w into time_w_upper from &time_table..time_table where time_last="&time_win_max_end"d;
quit;

创建最小和最大日期(这应该与提示相同),但是当我为新表选择字段时,我不知道如何使用此信息。
时间和日期月份 ( d_month ) 在一个表 ( &time_table..time_table ) 中,而其他字段在另一个表 ( &dtb..&input. ) 中。
我试过的是:
   proc sql;
create table table_test4 as
select t.time_window
,t.d_month
,&alias..date_month
,&alias..department
,%qsysfunc(dequote(&_factor.))
from &dtb..&input. &alias.
cross join time_window t
order by 1,2,3,4;
quit;

哪里 time_window是这样创建的表:
  data time_window (drop=i);
attr time_window length=8 format=11. informat=11.;
attr d_month length=14 format=$12. informat=$12.;
do =&time_w_lower. to time_w_upper.;
time_window=left(put(i,4.));
d_month=CAT("'", put(intent('month',"01JAN2010"d, i-1, 'end'), YYMMDDD10.),"'");
output;
end;
run;

不幸的是,我没有可以显示的数据,因此您提供给我的任何示例都将不胜感激。

感谢您的时间。

最佳答案

  • 您应该使用数据范围类型创建提示:
    enter image description here
  • 将创建的提示添加到您的节点。
    enter image description here
  • 然后您可以使用此提示中生成的宏变量。
    要知道生成了什么变量,您可以运行:
     %put _ALL_;

  • GLOBAL DATE_MAX 31Dec2019

    GLOBAL DATE_MAX_LABEL December 31, 2019

    GLOBAL DATE_MIN 01Dec2019

    GLOBAL DATE_MIN_LABEL December 01, 2019



    所以,在 proc sql您可以使用 "&DATE_MAX."d和“ &DATE_MIN."d whete DATE 是您的提示名称。

    关于sql - 使用proc sql创建表时如何调用选择日期范围的提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59241261/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com