作者joyce618 (joy)
站内Statistics
标题[程式] 不好意思,想请问如何加总季末前後20天的资料
时间Mon May 16 19:11:03 2011
------------------------------------------------------------------------
[软体程式类别]:SAS
[程式问题]:资料处理
[软体熟悉度]:
低(1~3个月)
[问题叙述]:
不好意思,小妹想要请问各位大人有关资料加总又更进阶的问题....
我的原始资料如下
code name yr month date AR
1000 甲公司 2010 03 08 0.xx
1001 乙公司 2010 03 08 0.xx
1002 丙公司 2010 03 08 0.xx
...
1000 甲公司 2011 03 02 0.xx
1001 乙公司 2011 03 02 0.xx
希望将原始资料从2010第二季开始整理成季末前後20天数字的加总,
等於是41笔资料的加总
整理出来的格式如下
code name month AR
1000 甲公司 06 0.xx
1000 甲公司 09 0.xx
1000 甲公司 12 0.xx
1001 乙公司 06 0.xx
.....
我原来是想用sql的方式计算
但是後来发现好像从筛选资料的部份就出了问题了
在筛选资料的时候,我是直接把6/30前後20天的日期设成筛选条件
可是後来发现筛选出来的资料很多都不满41天
因为有些公司不一定每天都有AR
还是说可以透过_N_来筛选前後20天的资料?
另外,因为目前其实尚未学到SQL
所以想请问各位大人有没有其他虽然复杂一点,但是也可以跑出来结果的语法
我目前能还学到回圈跟ARRAY的语法
但是完全是初学
实在很难想像要如何处理资料
不好意思,麻烦各位了^^
[程式范例]:
小妹原来写的程式如下:
DATA d;
SET c;
IF yr='2010' THEN if month='6' and date>='10' THEN month='6' ;
ELSE IF month='7' and date<='20' THEN month='6';
ELSE IF month='9' and date>='10' THEN month='9';
ELSE IF month='10' and date<='20' THEN month='9';
ELSE IF month='12' and date>='11' THEN month='12';
ELSE DELETE;
IF yr='2011' THEN IF month='1' and date<='20' THEN month='12';
ELSE DELETE;
run;
然後再利用版上大人教的SQL语法进行加总
但是最主要的还是想请问各位有没有不是用SQL的语法的写法
谢谢各位
-----------------------------------------------------------------------------
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.25.250.163
1F:推 west1996:有点看不懂你中段的意思,很多都不满41天那一段...你要的 05/16 20:15
2F:→ west1996:是季末前後20个「日历天」的资料加总呢?还是前後20个「 05/16 20:16
3F:→ west1996:有AR值的日子」加总? 05/16 20:17
4F:→ joyce618:我是要季末前後20个有AR的数字加总,也就是说每一个季末 05/16 20:47
5F:→ joyce618:的数字,都是由41笔AR(季末前20笔+後20笔+季末)组成 05/16 20:49
6F:→ joyce618:不好意思说明的有点模糊,麻烦你了^^ 05/16 20:50
7F:→ west1996:季末那一天会不会没有AR? 05/16 23:07
8F:→ joyce618:会喔,所以我是想说能不能将六月的最後一天当作基准,然 05/16 23:19
9F:→ joyce618:後以基准那天往前找20笔资料,再往後找20笔,这样就不会 05/16 23:20
10F:→ joyce618:受限於六月三十没有资料,等於直接找现有资料中每家公司 05/16 23:23
11F:→ joyce618:六月、九月、十二月资料中有的最後一笔AR,所以等於是完 05/16 23:25
12F:→ joyce618:全没办法用日历天来整理资料,不好意思,麻烦你了^^ 05/16 23:27