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

问题描述 投票:-2回答:2

我是数据库和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%。

mysql
2个回答
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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.