我是新来的索赔数据和相对较新的SQL ...并将非常感谢您的帮助。计算连续入学12个月前后12个月参考日期
我有类似这样的数据:
Customer Group Member ServiceDt
ABCDE 123 1111 01-Jan-12
123 1111 01-Feb-12
123 1111 01-Mar-12
123 1112 01-Feb-12
123 1112 01-Mar-12
FGHIJ 456 1116 01-Feb-12
KLMNO 567 1117 01-Mar-12
678 1118 01-Feb-12
789 1119 01-Mar-12
成员可以每月有一个条目,以指示活动报名日期。所以,一个会员可以有24行,为期两年的报名。另一个可能只有五行,等等......每个成员都是一个组的一部分,而这个组又是一个客户的一部分。 (客户可以有多个组 - 每个组中有许多成员,每个成员每个月都有一排)。
我需要从服务日期前12个月开始评估持续注册,然后继续12个月(服务日期之前和之后的注册年份),然后通过CUSTOMER和GROUP编号进行分组。
我已经尝试了intck/intcx函数,但似乎做错了什么。当我尝试第一次。最后。方式,我迷路了。这个数据是如此新的给我:)
这里是代码的片段(不包括服务器连接的东西),我试过至今:
beg1ylag = intnx('month',&eff ,-12,'m');
add1yfut = intnx('month',&eff , 12,'m');
If first.member_id then do;
mth_cnt = 0;
lag_mth_cnt = 0;
fut_mth_cn = 0;
End;
mth_cnt+1;
if eff_dt < servicedt then lag_mth_cnt+1;
if eff_dt > servicedt then fut_mth_cnt+1;
if last.member_id then output;
Proc SQL;
Select (x,y,z
beg1ylag = intnx('month',servicedt,-12,'m');
add1yfut = intnx('month',servicedt, 12,'m');
call symput('_beg1ylag',cats("'",year(beg1ylag),'-',put(month(beg1ylag),z2.),"Middle'"));
call symput('_add1yfut',cats("'",year(add1yfut),'-',put(month(add1yfut),z2.),"Middle'"));
Quit;
结果我得到的是空行。我不知道我在做什么或做错了什么....请指导我。另外,请注意,服务是不固定的。每个成员都可以有不同的 - 就像你上面看到的那样。最终,我需要能够挑选会员,并按照他们的团体号码将他们分组,如果他们已经有24个月的服务员持续成员身份。
你介意提供预期的输出吗? – yukclam9
请详细说明您的输入数据表。请准确了解过去和未来12个月的规则。你在处理什么类型的医疗保健索赔,这是美国的保险吗?您提出的要求对医疗保险似乎极其简单,以及可能涉及的众多因素和情况。 12个月的未来覆盖的商业原因是什么?这些要求是什么? – WarrenT
你的宏变量'&eff'从哪里来?您是否正在寻找从12个月前至12个月后连续入学的会员? (这是25个月,而不是24个!)除非您参与大数据,否则为什么要添加[ds2]标签?你为什么把你的问题标记为[持续]?这与这个统计概念无关。 –