SAS Dehoc Query ...中断范围数据

时间:2014-09-13 09:23:13

标签: sas

我需要你帮助开发一个针对特定(范围)数据的de-hoc查询,下面是一个股票优秀HOC的例子:

ID     StartDT       EndDT          SharesOutstanding

ABC         01-Jan-2010   03-Feb-2013     100

ABC         04-Feb-2014   03-Sep-2014     160

XYZ         01-Jan-2011   03-Mar-2012     52

XYZ         04-Mar-2012   09-Aug-2013     108

XYZ         10-Aug-2013   03-Sep-2014     120

现在我想将每天的上述范围数据解除或打破。以下是所需的输出:

ID    Date        Shares

ABC  01-Jan-2010  100

ABC  02-Jan-2010  100

ABC  03-Jan-2010  100

ABC  04-Jan-2010  100

ABC  05-Jan-2010  100

.......

ABC  03-Feb-2014  100

ABC  04-Feb-2014  160

....till 03-Sep-2014

我正在使用带有PROCSQL的SAS代码,但这非常耗时

最早需要您对此查询的帮助

由于 亚太区首席技术官Matt

1 个答案:

答案 0 :(得分:0)

使用数据步骤和一些do循环,这应该相当容易。

data want(drop = StartDT EndDT i);
  set have;
  format date date9.;
  do i = 0 to (EndDT-StartDT);
    date = StartDT + i;
    output;
  end;
run;

你真的想要很多重复的行,或者你只是想获得日期的差异吗?