SAS Dehoc QueryBreaking Range Data

Имам нужда от вашата помощ за разработване на de-hoc заявка за hoc(range) данни, по-долу е пример за Shares Outstanding 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

Използвам SAS код с PROCSQL, но това отнема много време

Имам нужда от вашата помощ по това запитване най-рано

Благодаря Hitesh


sas
person user3536092    schedule 13.09.2014    source източник


Отговори (1)


Това трябва да е сравнително лесно със стъпка за данни и някои do-цикли.

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

Наистина ли искате много повтарящи се редове, или просто се интересувате да получите разликата в датите?

person user667489    schedule 13.09.2014
comment
Благодаря...Това беше наистина полезно...спести ми много време - person user3536092; 15.09.2014
comment
Можете ли да помогнете на обратната или обратната страна на тази заявка --- stackoverflow.com/questions/25850738/ - person user3536092; 15.09.2014