先表述下,我有3张表:
第一张日历表 calendar 其中 F_DATE 包含每一天日期 INT型
第二张表 instance表 里面记录了 instance_id,start_date 开始时间,end_date 结束时间,ini_investment 初始金额 四个字段,这个主要是对calendar日期选择。
第三张表 trade_results 交易表 其中有 instance_id ,code 产品代码 ,trade_date int型 交易日期(不是每天都交易),trade_type 交易类型 0买 2卖 ,Amount 交易金额表结构大致就这样了,数据的话calendar 不用我给了吧,一个日历表。只有一个F_DATE每一天都有。第二张表 instance_id,start_date ,end_date ,ini_investment
AAA , 20120601 ,20120627 , 1000000.000第三张表 instance_id ,code ,trade_date ,trade_type ,Amount
AAA , 600048 ,20120607 , 0 ,333329.920
AAA , 600383 ,20120611 , 0 ,333331.050
AAA , 600383 ,20120625 , 2 ,302125.590要求结果 f_date ,instance_id ,ini_investment,balance(ini_investment - AMOUNT(交易类型0) + AMOUNT(交易类型2))
20120601, AAA , 1000000.000 ,1000000.000
20120602, AAA , 1000000.000 ,1000000.000
...
20120607, AAA , 1000000.000 ,666670.08
20120608, AAA , 1000000.000 ,666670.08
...
20120611, AAA , 1000000.000 ,333339.03
20120612, AAA , 1000000.000 ,333339.03
...
20120625, AAA , 1000000.000 ,635464.62
20120626, AAA , 1000000.000 ,635464.62
20120627, AAA , 1000000.000 ,635464.62
感谢爱锅上周五的支援
第一张日历表 calendar 其中 F_DATE 包含每一天日期 INT型
第二张表 instance表 里面记录了 instance_id,start_date 开始时间,end_date 结束时间,ini_investment 初始金额 四个字段,这个主要是对calendar日期选择。
第三张表 trade_results 交易表 其中有 instance_id ,code 产品代码 ,trade_date int型 交易日期(不是每天都交易),trade_type 交易类型 0买 2卖 ,Amount 交易金额表结构大致就这样了,数据的话calendar 不用我给了吧,一个日历表。只有一个F_DATE每一天都有。第二张表 instance_id,start_date ,end_date ,ini_investment
AAA , 20120601 ,20120627 , 1000000.000第三张表 instance_id ,code ,trade_date ,trade_type ,Amount
AAA , 600048 ,20120607 , 0 ,333329.920
AAA , 600383 ,20120611 , 0 ,333331.050
AAA , 600383 ,20120625 , 2 ,302125.590要求结果 f_date ,instance_id ,ini_investment,balance(ini_investment - AMOUNT(交易类型0) + AMOUNT(交易类型2))
20120601, AAA , 1000000.000 ,1000000.000
20120602, AAA , 1000000.000 ,1000000.000
...
20120607, AAA , 1000000.000 ,666670.08
20120608, AAA , 1000000.000 ,666670.08
...
20120611, AAA , 1000000.000 ,333339.03
20120612, AAA , 1000000.000 ,333339.03
...
20120625, AAA , 1000000.000 ,635464.62
20120626, AAA , 1000000.000 ,635464.62
20120627, AAA , 1000000.000 ,635464.62
感谢爱锅上周五的支援
解决方案 »
- 看了N久的书,还是没搞清楚索引的意义好处和用法。郁闷。,请高手指点哈。
- 关于大文本备份数据导入sql server的问题?急急急
- 求助,SQL2005软件装不上
- 一个SQL的面试题,题目没怎么看懂,帮忙分析一下。
- 事务处理
- 用的server2000,却出现“在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败”
- 事务问题!
- 我在SQL中写了一个PROC,用来复合查询,输入中文参数却什麽也查不到,怎么办,救救我!!!
- T-SQL 问题!
- 觸發器問題?
- 日历关联查询视图,坐等爱锅
- sqlserver数据库还原问题,还有加班的大侠吗,呜呜,急啊···
SELECT a.[f_date],b.[instance_id],b.[ini_investment]
,ini_investment-ISNULL((SELECT SUM(CASE WHEN [trade_type]=0 THEN [Amount] ELSE -[Amount] END) FROM [trade_results] WHERE [instance_id]=b.[instance_id] AND [trade_date]<=a.[f_date]),0)
FROM [Strategy_Instances] b left JOIN [calendar] a
ON a.[f_date] BETWEEN b.[start_date] AND [end_date]