1

下面是生成所需基本价格值的初始表创建查询 - 这不是问题并且工作正常。

CREATE TABLE Tablebaseprice
SELECT    @PrevBasePrice := CASE
            WHEN @prevITS = st.its AND st.ppc IS NOT NULL THEN
              round(((1+st.ppc)*@prevBaseprice),3)
            ELSE 100
          END Baseprice,
          st.Date AS Date,
          @prevITS := st.its its,
          st.PPC
FROM      stemp st
ORDER BY  st.its, st.date;

但是当我将新行插入现有表时,我一直在弄清楚如何计算 Baseprice。Baseprice 的计算方法是将任何给定 ITS 的最后一行或前一行的 baseprice (prevBaseprice) 乘以 (1+ppc) - 所以我需要能够提取现有表中任何 ITS 的最后一个 baseprice 实例并相乘通过 PPC 为我要插入的行生成新的基本价格。

以下是现有表中的数据:

baseprice 日期其 ppp
114.401 2012 年 10 月 12 日上午 12:00:00 IBM -0.013
105.993 2012 年 10 月 19 日上午 12:00:00 IBM -0.073
105.94 2012 年 10 月 26 日上午 12:00:00 IBM -0.001
106.025 2012 年 11 月 2 日上午 12:00:00 IBM 0.001
104.403 2012 年 11 月 9 日上午 12:00:00 IBM -0.015
102.92 11/16/2012 12:00:00 AM IBM -0.014
106.522 2012 年 11 月 23 日上午 12:00:00 IBM 0.035

但我想插入以下内容:

2012 年 11 月 30 日上午 12:00:00 IBM -0.018
2012 年 12 月 7 日上午 12:00:00 IBM 0.01

还要计算基本价格,以便新行读取:

104.605 11/30/2012 12:00:00 AM IBM -0.018 /*(104.637=(1+ -0.018)*106.522*/
105.673 12/07/2012 12:00:00 AM IBM 0.01
4

0 回答 0