如何在SAS EG上按特定条件汇总数据?

时间:2017-01-11 20:28:49

标签: sql sas

我有一个关于聚合数据的问题,数据结构如下所示:(表A)

例如,第一行表示从17JAN2016开始的需求的1/3将使用1天;和1/3将使用2天;剩下的1/3将使用3天。

ID   | Start_Date  | Length_of_Use | Percentage 
-------------------------------------------------
1    | 17JAN2017   |      1        |  0.333
2    | 17JAN2017   |      2        |  0.334
3    | 17JAN2017   |      3        |  0.333
4    | 18JAN2017   |      1        |  0.5
5    | 18JAN2017   |      4        |  0.5
6    | 19JAN2017   |      2        |  0.5
7    | 19JAN2017   |      3        |  0.5
8    | 20JAN2017   |      2        |  1
9    | 21JAN2017   |      1        |  1

我的使用日期等级如下:(表B)

ID  | Use_Date      | Use_Demand 
----------------------------------- 
1   | 17JAN2017     |      3    
2   | 18JAN2017     |      4    
3   | 19JAN2017     |      4   
4   | 20JAN2017     |      4    
5   | 21JAN2017     |      5    

如果我们将上述2个表格作为已知信息, 我怎样才能将表A和表B合并到一个表中,该表可能有开始日期和时间表的需求。使用时长等级如下? (表C)

ID只是一个序列号,没有关键信息。 第一行按以下方式计算:

3*0.333 = 1 

(抵达日期17JAN2016,使用期限1)

我想通过'Start_Date'来解决需求。 'length_of_Use'级别 根据'Use_Date'级别(表B)的需求和每个'Starting_Date'和'Length_of_Use'的概率(表A)。

如表B中的例子所示,17JAN2017的use_demand为3,并且根据概率,其中1个具有使用长度1,这意味着'use_date'是17JAN2017;其中1个具有使用长度2,这意味着'use_date'是17JAN2017和18JAN2017;其余的1具有使用长度3,这意味着'use_date'是17JAN2017,18JAN2017和19JAN2017。

如表B所示,18JAN2017的use_demand为4,其中2个来自17JAN2017,因此,其余2个应来自18JAN2017。基于概率表(表A),Starting_Date 18JAN2017有两种类型的停留时间,两者的概率均为0.5;因此,具有使用长度1的Start_Date'18JAN2017'具有需求1,具有使用长度4的“18JAN2017”具有需求1; whcih表C的第4和第5行。

谢谢!

ID   | Start_Date     | Length_of_Use | Demand 
------------------------------------------------
1    | 17JAN2017      |      1        |  1
2    | 17JAN2017      |      2        |  1
3    | 17JAN2017      |      3        |  1
4    | 18JAN2017      |      1        |  1
5    | 18JAN2017      |      4        |  1
6    | 19JAN2017      |      2        |  1
7    | 19JAN2017      |      3        |  1
8    | 20JAN2017      |      2        |  1
9    | 21JAN2017      |      1        |  2

0 个答案:

没有答案