SAS sql是否有任何句点数据类型?
下表列出了参加马拉松比赛的人SAS sql是否有任何句点数据类型?,sas,Sas,下表列出了参加马拉松比赛的人 person start end mike 2-Jun-14 2-Aug-14 nike 3-Jul-14 9-Aug-14 mini 1-Aug-14 3-Nov-14 我想知道每个月1日是否有人在“跑马拉松”。所需的表应该如下所示 person running on mike 1-Jul-14 mike 1-Aug-14 nike 1-Aug-14 mini 1-Aug-14 min
person start end
mike 2-Jun-14 2-Aug-14
nike 3-Jul-14 9-Aug-14
mini 1-Aug-14 3-Nov-14
我想知道每个月1日是否有人在“跑马拉松”。所需的表应该如下所示
person running on
mike 1-Jul-14
mike 1-Aug-14
nike 1-Aug-14
mini 1-Aug-14
mini 1-Sep-14
... for all other months
SAS
proc sql
中是否有任何方法可以获得此结果。其他数据库管理系统(Teradata、Oracle)都有这样的功能。SAS中实现这一点的最佳方法是什么 我会在SAS中使用数据步骤来解决这个问题
data have;
input person $ from :anydtdte. to :anydtdte.;
format from to date11.;
datalines;
mike 2-Jun-14 2-Aug-14
nike 3-Jul-14 9-Aug-14
mini 1-Aug-14 3-Nov-14
;
run;
data want(keep=person running_on);
set have;
format Running_on date11.;
do Running_on=from to to;
if day(running_on) = 1 then
output;
end;
run;
我将使用数据步骤在SAS中解决此问题
data have;
input person $ from :anydtdte. to :anydtdte.;
format from to date11.;
datalines;
mike 2-Jun-14 2-Aug-14
nike 3-Jul-14 9-Aug-14
mini 1-Aug-14 3-Nov-14
;
run;
data want(keep=person running_on);
set have;
format Running_on date11.;
do Running_on=from to to;
if day(running_on) = 1 then
output;
end;
run;
您可能会考虑使用<代码> Itnx函数来直接移动到下个月,而不是每天迭代。我在想更多的是<代码> PROC SQL<代码>解决方案。上述解决方案使用外部(非SQL)超级功能。如果SAS SQL不够好,那么这个解决方案是可以接受的,你可以考虑使用<代码> Itnx函数来直接移动到下个月,而不是每天迭代。我在想更多的是<代码> PROC SQL<代码>解决方案。上述解决方案使用外部(非SQL)超级功能。好吧,如果SAS sql不够好,那么这个解决方案是可以接受的