Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我使用proc sql创建表时,如何调用选择日期范围的提示?_Sql_Sas_Enterprise Guide - Fatal编程技术网

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

当我使用proc sql创建表时,如何调用选择日期范围的提示?,sql,sas,enterprise-guide,Sql,Sas,Enterprise Guide,我想问一下如何在创建表的proc sql中调用提示符(我使用的是SAS企业指南)。 我感兴趣的是将数字与日期月(如下表所示)关联起来,在这里可以使用提示选择d_月 time_window d_month database_name table_name short_name group_field field field_list 1 '2018-02-28'

我想问一下如何在创建表的proc sql中调用提示符(我使用的是SAS企业指南)。 我感兴趣的是将数字与日期月(如下表所示)关联起来,在这里可以使用提示选择d_月

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\u-month
)在一个表中(
&Time\u-table..Time\u-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\u 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;
不幸的是,我没有数据,我可以显示,所以任何例子,你会提供给我将不胜感激

谢谢你抽出时间

  • 您应使用以下数据范围类型创建promt:

  • 将创建的提示添加到节点。

  • 然后,您可以在此提示符下使用生成的宏变量。 要了解生成的变量,可以运行:

     %put _ALL_;
    
  • 全球日期最长2019年12月31日

    全球日期标签2019年12月31日

    全球日期:2019年12月1日

    全球日期标签2019年12月1日

    因此,在
    proc sql
    中,您可以使用
    “&DATE\u MAX.”d
    和“
    &DATE\u MIN.”d
    white DATE是您的提示名称