Mysql当前不起作用(sql股价)

时间:2011-11-20 20:42:36

标签: mysql sql

以下是原始问题: 有一个表stockprices,其中包含有关一家公司股票交易的信息。它有两列:时间戳和价格。它们代表交易发生的时间和销售的价格。表中记录的自然顺序是随机的,不按时间戳排序。

您要添加另一列(我们称之为delta),您打算在时间上存储当前交易价格与上一交易价格之间的差额。

编写一个SQL语句,它将计算价格差异并在所有行中填充列增量。

我写下如下的sql在mysql上运行,但似乎mysql不支持当前,我无法继续前进,以下是我现在写的一个来计算当前交易价格和以前交易的时间价格:

 SELECT
   [current].timestamp,
   [current].price,
   ISNULL([next].price, 0) - [current].price
   FROM
   stockprice       AS [current]
LEFT JOIN
   stockprice       AS [next]
      ON [next].timestamp = (SELECT MIN(timestamp) FROM stockprice WHERE timestamp > [current].timestamp)

1 个答案:

答案 0 :(得分:2)

您使用方括号作为标识符分隔符。此语法仅适用于Microsoft SQL Server和Sybase。您应该使用在MySQL中运行的语法,默认情况下是反引号,如果启用ANSI_QUOTES模式则使用双引号。

请参阅我对Do different databases use different name quote?

的回答