全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1396 7
2012-02-14
悬赏 50 个论坛币 已解决
原表格:所有股票的每日交易数据

Stock_code   stock_name        dt                          cp     vol
000001       深发展          03APR1991:00:00:00       49    1000
000001       深发展          04APR1991:00:00:00       48    2000
……
000001       深发展          13FEB2012:00:00:00       48    2000
000002       万科            29JAN1991:00:00:00       15    3000
000002       万科            30JAN1991:00:00:00       17    4000
……
000002       万科            13FEB2012:00:00:00       17    4000

……


新表格:求所有股票的季度建仓成本
股票的建仓成本cost等于股票每个季度  的  cost=(∑cp*vol)/ ∑vol
Stock_code   stock_name     dt                           cost
000001       深发展          1 st 1991                      5.3
000001       深发展          2st1991                        5.6
000001       深发展          3st1991                        5.8
000001       深发展          4st1991                        5.8
…….
000001       深发展          1 st 2012                       5.8
000002       万科             1 st 1991                       5.3
……
000002       万科            1 st 2012                       5.8
……

小弟不会截取季度数据,求各位帮忙
谢谢了先

最佳答案

zhangzachary 查看完整内容

假设a 是你的数据,res 为结果:
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-2-14 11:34:12
假设a 是你的数据,res 为结果:
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-2-14 14:15:51
出现两处错误
1、yy=year(dt)返回的是空值
必须要用yy=year(datepart(dt));

2、594  group by stock_code stock_name yy quarter
                         ----------
                         22
                         202
ERROR 22-322: 语法错误,期望下列之一: ;, !, !!, &, (, *, **, +, ',', -, '.', /, <, <=, <>, =, >, >=, ?, AND, BETWEEN,
              CONTAINS, EQ, EQT, EXCEPT, GE, GET, GT, GTT, HAVING, IN, INTERSECT, IS, LE, LET, LIKE, LT, LTT, NE, NET,
              NOT, NOTIN, OR, ORDER, OUTER, UNION, ^, ^=, |, ||, ~, ~=.

ERROR 202-322: 该选项或参数不可识别,将被忽略。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-2-14 14:16:48
我给出我现在运行符合我期望的程序供大家分享

PROC SQL;
CREATE TABLE STOCK AS
SELECT        Stock_code,stock_name,year(datepart(dt))*100+qtr(datepart(dt)) AS TradeQuarter,cp,vol
FROM STOCK;
QUIT;
               
PROC SQL;
CREATE TABLE STOCK AS
SELECT distinct Stock_code,stock_name,TradeQuarter,SUM(cp*vol)/SUM(vol) as cost
FROM STOCK       
GROUP BY Stock_code,TradeQuarter;
QUIT;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-2-14 14:17:46
zhangzachary
还是要谢谢你,您每次的回答都非常及时,很有帮助

我现在也知道怎么给你金币了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-2-14 14:25:49
to:zhangzachary

group by stock_code stock_name yy quarter


这句几个变量之间少几个逗号,加上就OK了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群