在SAS中查找第一个交易日期

时间:2016-04-25 13:10:16

标签: sas ssas

我有2个客户2个月的交易日期,现在我只需要为该特定客户提取该月的第一个交易日期。就像我需要一个月明智。我在SAS上没有对此有所了解。有人可以帮忙吗?在此先感谢。

Cust_name Vis_date V 3/1/2016 V 8/1/2016 V 16/1/2016 V 18/1/2016 V 26/1/2016 V 27/1/2016 E 5/1/2016 E 8/1/2016 E 18/1/2016 E 19/1/2016 E 25/1/2016 E 26/1/2016 V 4/2/2016 V 8/2/2016 V 17/2/2016 V 25/2/2016 V 26/2/2016 V 27/2/2016 E 5/2/2016 E 8/2/2016 E 23/2/2016 E 24/2/2016 E 25/2/2016 E 28/2/2016

3 个答案:

答案 0 :(得分:0)

如果您创建一个跟踪月份的变量,这变得非常简单!需要将Vis_date格式化为日期变量,以使其工作。

data your_data2;
    set your_data;
    month = month(vis_date);
run;

proc sort data = your_data2;
by cust_name vis_date;
run;

proc sort nodupkey data = your_data2;
by cust_name month;
run;

答案 1 :(得分:0)

我会首先得到每个记录的月份然后排序。有了这个,您可以通过如下数据步骤拉出观察结果:

data test.doc1;                                                                                                                         
set test.doc;                                                                                                                           

Month = month(__Vis_date);                                                                                                              
run;                                                                                                                                    

proc sort data=test.doc1;                                                                                                               
by Cust_name Month __Vis_date;                                                                                                          
run;                                                                                                                                    

data test.doc2;                                                                                                                         
set test.doc1;                                                                                                                          
by Cust_name Month;                                                                                                                     
if first.Month then output;                                                                                                             
run;        

答案 2 :(得分:0)

您可以在单个SQL语句中执行此操作:

proc sql ;
  create table want as
  select Cust_name, 
         put(Vis_date,yymmn6.) as Month, 
         min(Vis_Date) as First_Date format=date9.
  from have 
  group by 1,2
  order by 1,2 ;
quit ;