2017-06-12 43 views
-1

我正在使用adventureworks數據集。SAS試圖獲得從訂單到發貨日期的差異

尋找方法來計算平均需要多長時間ADW才能在訂單日期和裝運日期之間交付產品。

format sas date9。

例如爲:

orderdate    shipdate 
01JUL2005:00:00:00 08JUL2005:00:00:00 
+0

請顯示您嘗試過的代碼,並描述您收到的任何錯誤消息或描述您爲什麼不滿意結果。它也可能有助於顯示一些樣本記錄。 – Quentin

+0

data productdate; set productdate; format = orderdate shipdate date9。 productdelivery = orderdate-shipdate; 跑;錯誤388-185:期待算術運算符。 錯誤76-322:語法錯誤,語句將被忽略。 72 productdelivery = orderdate-shipdate; 73跑; –

回答

0

這裏有一個方法可能會有所幫助。 SAS功能intck()非常有用!

/* Generate a dataset as described. */ 
    data have; 
     do id=1 to 10000; 
      orderdate = today()-(ceil(ranuni(id)*1000)); 
      shipdate = orderdate + ceil(ranuni(id)*10); 
      output; 
     end; 
     format orderdate shipdate date9.; 
    run; 

/* Use intck() to count the number of days or weekdays between order and delivery dates */ 
    data want; 
     set have; 
     weekdays_passed = intck('weekday7w',orderdate,shipdate); 
     abs_days_passed = intck('day',orderdate,shipdate); 
    run; 

/* Two ways to obtain average delivery time in days. */ 
/*1*/ 
    proc univariate data=want; 
     var weekdays_passed 
      abs_days_passed; 
    run; 
/*2*/ 
    proc sql; 
     select avg(weekdays_passed) as avg_weekdays_passed, 
       avg(abs_days_passed) as avg_abs_days_passed 
     from want; 
    quit;