如何在mysql中选择两个不同的日期?

时间:2019-03-09 06:23:34

标签: mysql

我是数据库和MySQL的新手。我正在使用MySQL数据库开发一个库存跟踪软件后端。我在MYSQL查询中有问题。

我需要跟踪一段时间内的价格变化。如何根据日期选择两个不同的列和行。例如我需要MYSQL从日期'2019-02-27'返回'打开'值和从日期'2019-03-01'返回'关闭'的值;
并计算两个值之间的百分比差异(十进制)。

是否有可能在MYSQL中进行这种查询,或者我应该编写发送两个查询的程序。一个从``2019-02-27''获得``开放'',另一个从``2019-03-01''获得``关闭''。

这是我的问题http://sqlfiddle.com/#!9/eb23e3/6

的SQL小提琴

这是任何示例表

symbol |    date    |  open | close | low   | high 
----------------------------------------------------
   HCL | 2019-02-27 | 36.00 | 38.00 | 34.00 | 40.00
   HCL | 2019-02-28 | 37.00 | 39.00 | 36.00 | 41.00
   HCL | 2019-03-01 | 38.00 | 42.00 | 37.00 | 46.00

我如何从日期'2019-02-27'获得'开放'和从日期'2019-03-01'获得'关闭' 然后计算百分比差异,例如(2019-02-27)``开盘''值为36.00和(2019-03-01)``收盘''值为42.00,因此百分比百分比差为+16.6%。

2 个答案:

答案 0 :(得分:0)

通过此操作,您需要获得3列:

select t.*, 
  concat(
    case when t.close > t.open then '+' else '' end,
    truncate(100.0 * (t.close - t.open) / t.open, 1)
  ) percentdif
from (
  select 
    (select open from dailyprice where date = '2019-02-27') open, 
    (select close from dailyprice where date = '2019-03-01') close
) t

请参见demo

答案 1 :(得分:0)

我建议运行两个不同的查询,然后计算返回值的差异