通过SQL进行股票交易系统计算

时间:2008-10-17 06:00:43

标签: sql database-design

需要根据数据库中的交易计算股票市场投资组合。我希望通过SQL做的计算是平均价格,收益​​率,投资组合价值等。

示例数据:

Stock   Shares  Price   Value
A       100     50      5000
A       -20     60     -1200
A        50     40      2000

我无法用SQL做到这一点,所以我猜我可能需要编写输出脚本,所以任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

请注意,当前价格是硬编码的(38),因为它没有提供,它需要在另一个表中提供,该表将加入到股票表中,但原理是相同的。

create table stocks (stock varchar2(10),shares number, price number);
insert into stocks values('A', 100, 50);
insert into stocks values('A', -20, 60);
insert into stocks values('A', 50, 40);

select stock, sum(shares) number_of_shares, round(sum(shares*price)/sum(shares),2) average_price,
    sum(shares*price) amount_paid,   sum(shares*38) value,   
    round((sum(shares*38)-sum(shares*price))/sum(shares*price)*100,2)||'%' rate_of_return
from stocks
group by stock

STOCK NUMBER_OF_SHARES AVERAGE_PRICE AMOUNT_PAID VALUE RETURN                    
A                  130         44.62        5800  4940 -14.83%