SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1049|回复: 4
打印 上一主题 下一主题

请教编程“汇总每个账户每一天每一只股票的买卖情况”

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-7-27 10:54:55 | 只看该作者

请教编程“汇总每个账户每一天每一只股票的买卖情况”

例如有以下的数据
ZJZH        ZQDM        CJSL        ZJFSS        ZQYE        CJRQ        CJSJ
090300011526        000506        700        -1730.43        13000        20050104        13:54:38
090300011526        000506        700        -1695.36        13700        20050104        13:55:39
090300011526        000506        -700        1713.56        13000        20050104        14:24:13
090300011526        000506        -700        1769.44        12300        20050105        09:50:56
090300011526        000506        -700        1797.33        11600        20050105        10:55:51
090300011526        000506        -700        1825.19        10900        20050105        11:16:54
090300009961        000738        1700        -4492.45        16700        20050104        10:38:15
090300011526        000767        300        -1724.42        1000        20050105        13:19:28
090300011526        000800        -500        1796.34        1600        20050104        09:55:18
090300011526        000800        500        -1783.54        2100        20050104        10:43:42
090300011526        000836        -300        1560.86        1500        20050104        09:57:23
090300011526        000836        -300        1620.74        1200        20050105        10:07:48
090300011526        000877        -500        1791.36        1900        20050104        11:06:15
090300011526        600011        300        -2035.71        2400        20050105        11:00:22

ZJZH表示资金账户,ZQDM代码表示股票名称, CJSL表示本次买卖的数量,正的为买入,副的为卖出,ZjFSS为本次买卖的资金,其中正的为卖出,负的为买入,
ZQYE表示本次卖出以后的该账户中股股票的余额,cjRQ表示买卖日期,cjsj表示成交的时间。
现在想要计算每一天每一个账户每一只股票的买卖情况,以及余额,即得到以上的数据,
ZJZH        ZQDM        CJSL        ZJFSS        ZQYE        CJRQ
090300009961        000738        1700        -4492.45        16700        20050104
090300011526        000506        700        -1712.23        13000        20050104
090300011526        000836        -300        1560.86        1500        20050104
090300011526        000877        -500        1791.36        1900        20050104
090300011526        000506        -2100        5391.96        10900        20050105
090300011526        000767        300        -1724.42        1000        20050105
090300011526        000836        -300        1620.74        1200        20050105
090300011526        600011        300        -2035.71        2400        20050105

谢谢各位。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-7-27 16:29:51 | 只看该作者

Re: 请教编程“汇总每个账户每一天每一只股票的买卖情况”

不知道是否符合要求:)
data raw;
input ZJZH $12. ZQDM $ CJSL ZJFSS ZQYE CJRQ yymmdd8. CJSJ time9.;
format CJRQ yymmdd10. CJSJ time8.;
cards;
090300011526 000506 700 -1730.43 13000 20050104 13:54:38
090300011526 000506 700 -1695.36 13700 20050104 13:55:39
090300011526 000506 -700 1713.56 13000 20050104 14:24:13
090300011526 000506 -700 1769.44 12300 20050105 09:50:56
090300011526 000506 -700 1797.33 11600 20050105 10:55:51
090300011526 000506 -700 1825.19 10900 20050105 11:16:54
090300009961 000738 1700 -4492.45 16700 20050104 10:38:15
090300011526 000767 300 -1724.42 1000 20050105 13:19:28
090300011526 000800 -500 1796.34 1600 20050104 09:55:18
090300011526 000800 500 -1783.54 2100 20050104 10:43:42
090300011526 000836 -300 1560.86 1500 20050104 09:57:23
090300011526 000836 -300 1620.74 1200 20050105 10:07:48
090300011526 000877 -500 1791.36 1900 20050104 11:06:15
090300011526 600011 300 -2035.71 2400 20050105 11:00:22
;
run;
proc sort data=raw;
by cjrq zjzh zqdm;
run;
data result1(drop=CJSL ZJFSS CJSJ);
set raw;
by cjrq zjzh zqdm;
if first.zqdm then do;
CJSL_sum=0;
ZJFSS_sum=0;
end;
CJSL_sum+CJSL;
ZJFSS_sum+ZJFSS;
if last.zqdm;
run;
data result;
set result1(rename=(CJSL_sum=CJSL ZJFSS_sum=ZJFSS));
run;
抛砖引玉阿
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2008-7-28 21:18:34 | 只看该作者

Re: 请教编程“汇总每个账户每一天每一只股票的买卖情况”

4行语句就搞定了。。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2008-7-28 23:21:31 | 只看该作者

Re: 请教编程“汇总每个账户每一天每一只股票的买卖情况”

太简单,没意思
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2008-8-14 10:57:48 | 只看该作者

Re: 请教编程“汇总每个账户每一天每一只股票的买卖情况”

proc sort data=raw;
by zjzh zqdm cjrq cjsj;
run;
data result(keep=zqdm zjzh cjsl_sum zjfss_sum zqye cjrq);
set raw;
by zjzh zqdm cjrq cjsj;

             if first.cjrq then do;
                       cjsl_sum=0;
                           zjfss_sum=0;
                    end;
                        cjsl_sum+cjsl;
                        zjfss_sum+zjfss;
                 if last.cjrq;
            zqye_sum=zqye;
                        output;
run;



初次练习,还请大家多多关照 <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-4 22:04 , Processed in 0.071543 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表