首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在表格中填入日期“空洞”?

如何在表格中填入日期“空洞”?
EN

Stack Overflow用户
提问于 2013-08-11 20:47:47
回答 2查看 163关注 0票数 2

我想我的问题并不像我想的那样清楚。我将尽最大努力解释我的问题:

我有一张客户和日期的表格。我使用了LAG函数来检索以前的日期,以确定日期中是否存在“漏洞”:

代码语言:javascript
复制
    Customer        Prev_date                       Date                    Missing_ind
    1               01dec2004:00:00:00              01jan2005:00:00:00             0
    1               01jan2005:00:00:00              01feb2005:00:00:00             0
    1               01feb2005:00:00:00              01apr2005:00:00:00             1
    2               01dec2004:00:00:00              01jan2005:00:00:00             0
    2               01jan2005:00:00:00              01feb2005:00:00:00             0
    2               01feb2005:00:00:00              01mar2005:00:00:00             0
    2               01mar2005:00:00:00              01jun2005:00:00:00             2
    .
    .
    .
    .

如您所见,在第3行中,客户1 (mar2005)缺少1个月,而在第7行,客户2 (apr2005,may2005)缺少2个月。

有一个指标告诉我每个客户缺少的月份有多少(Missing_ind)

我需要做的是,为表中的所有客户完成缺少的月份,无论是精确的表,还是向新表插入行。

怎么做呢?

谢谢你帮了我一把

盖尔。

EN

回答 2

Stack Overflow用户

发布于 2013-08-11 21:00:58

这实际上是一个不同的问题,这很容易解决。

代码语言:javascript
复制
data have;
input Customer (prev_date date) (:datetime17.);
format prev_date date datetime19.;
datalines; 
    1               01dec2004:00:00:00              01jan2005:00:00:00            
    1               01jan2005:00:00:00              01feb2005:00:00:00            
    1               01feb2005:00:00:00              01apr2005:00:00:00            
    2               01dec2004:00:00:00              01jan2005:00:00:00            
    2               01jan2005:00:00:00              01feb2005:00:00:00            
    2               01feb2005:00:00:00              01mar2005:00:00:00            
    2               01mar2005:00:00:00              01jun2005:00:00:00   
;;;;
run;
data want;
set have;
missing_months = intck('dtMonth',prev_date,date)-1;
run;
票数 1
EN

Stack Overflow用户

发布于 2013-08-14 22:00:58

由于您已经确定了两个日期之间丢失的月数,因此可以使用一个简单的do循环和intnx函数来解决此问题。

代码语言:javascript
复制
data missing_dates (keep=customer missing_date );
 set dates;
 format missing_date datetime17.;
 missing_date = prev_date;
 do i=1 to missing_ind by 1;
  missing_date = intnx('dtmonth',missing_date,1,'b');
  output;
 end;
run;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18172054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档