SAS Dehoc QueryBreaking Range Data

Мне нужна ваша помощь в разработке запроса de-hoc для данных 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

Я использую код SAS с PROCSQL, но это занимает очень много времени.

Нужна ваша помощь по этому запросу в ближайшее время

Спасибо, Хитеш.


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


Ответы (1)


Это должно быть довольно легко с шагом данных и некоторыми циклами выполнения.

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