A:
需求分析:
1、天软提供了基金的月度收益率数据,数据在表格617中。
2、天软还提供了取一个基金在一段区间内的指定周期的收益率序列,取的数据源也是617中的,函数为:FundNAQk(BegT,EndT,Cy)
结果展示方式:
1、纵向合并,即返回: StockID、截止日、净值增长率(%)
2、横向合并,即返回以基金代码为列名,截止日为行下标的净值增长率(%)表格数据
实现分别如下:
范例01:纵向合并的实现
说明:直接批量提取表格数据即可-数据库中也是这么存放的
stocks:=getbk('股票型')[0:9];//只取前10个基金,仅当案例展示,用户可变更为自己的基金代码组合
dbegt:=20200101;//注意此处为整型,非日期,若为日期需要用datetoint进行转换
dendt:=20220101;
return select ['StockID'],['截止日'],['净值增长率(%)']
from infotable 617 of stocks where
['开始日']>=dbegt and ['实际截止日']<=dendt
Order by ['开始日']
end ;
结果展示:
范例02:横向合并-横轴是基金代码,纵轴是日期
说明:要按基金分别存放列,则需要一个个券进行处理,不适合批量提取。
stocks:=getbk('股票型')[0:9];//只取前10个基金,仅当案例展示,用户可变更为自己的基金代码组合
begt:=20200101T;//注意此处是日期
endt:=20220101T;
ret:=array();
for i:=0 to length(stocks)-1 do
begin
setsysparam(pn_stock(),stocks[i]);
t:=fundnaqk(begt,endt,cy_month())[:,array('截止日','净值增长率(%)')];
for j:=0 to length(t)-1 do
ret[t[j]['截止日']][stocks[i]]:=t[j,'净值增长率(%)'];
end
return ret;
结果展示: